Tuesday, October 7, 2008

Finding Optimized Functions

Using pgomgr for Visual Studio I am able to look at the pgd ( profile guided database ) files that are created during profiling.

Functions
The pgd files hold the following information:
  • Number of times a function was entered.
  • Time spent in a function.
  • Time spend in the sections of a function.
  • Number of times a loop was iterated.
  • Number of times the loop was broken out of.
  • Number of times an if statement was hit.
  • Number of times each branch was hit.
With the help of contributors I hope to create a profiling scenario that will optimize Firefox for everyday use.

The pgd files can help determine if my profiling scenario is broad enough to hit most of the Firefox functions that get used.

I'll need to research what the average users usage habits are.

Tests
To know if my profiling is having a positive or negative effect I'll need to run performance tests against my builds. I'm looking into the performance tests mozilla uses for their tinderbox builds.

Next
Create a list of performance tests to run.
Create a comparison between a non-pgo build and a pgo-build.

No comments: