Re: To Discuss: Application Startup Time



Soeren Sandmann <sandmann daimi au dk> writes:

>         - How many pagefaults did this program cause
> 
>         - What code points cause those page faults

Here is a suggestion for a concrete project:

        - Write a valgrind skin that keeps track of the *address* of
          each executed instruction and writes all those addresses to
          a file.along with a list of all mapped libraries.+ their
          mapping address.

        - Write a program that takes such a file, and for each mapped
          library represents graphically the library's pages as small
          rectangles. Each rectangle is given a color ranging from
          white to red, where white means "no instructions from this
          page were executed", and fully red means "every instruction
          on this page was executed".

          When you click on a rectangle, you'll get the corresponding
          source code with each executed line highlighted in red.

          I imagine the screen would look a bit like the old DOS
          disk-fragmenter.

These tools would provide a clear representation of all page faults
and it would be easy to see how to improve the situation (reorder
functions and split unused branches into their own functions to make
all rectangles either totally white or totally red).

The same thing could be done for constant data in the libraries.


Søren



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