Re: Removing xrdb for 10% startup win?

Lorenzo Colitti <lorenzo colitti com> writes:

> So, as Owen says, most of the time is spent just reading the cc1 binary
> into memory. I have no idea why it's reading around all over the place
> instead of performing one big sequential read of the whole file
> though.

Well, that's to avoid reading all of the file into memory. All
binaries, both executables and library, are read that way.

Generally binaries contain lots of dead code that simply never gets
executed, so the dynamic linker maps the files and relies on page
faults to get the data into memory. That way only the pages that are
actually needed will get read.

Doing a sequential read of all of the files would likely be a little
faster, but also require a lot more memory. If instead we could
reorder the contents of the binary so that all the actually used code
would be moved to the front of the file, we would get both the memory
saving and the sequential read.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]