Friday, October 3, 2008

Change of Direction

After talking with Ted and Dave Humphrey on irc I decided on not focusing on the bugs in PGO since PGO is turned off for the code that had the bugs. I'm focusing on increasing the amount of profiling of Firefox to improve its performance. I had notice that the pgo output mentioned that only 3% of all the functions are optimized. I would like to increase that. Of course I also need to determine what percentage of all Firefox functions are used on average.

My first step is to run some automated tests to gather performance data and also test that the pgo didn't break anything.

Mozilla and Tests
I read up on the Mozilla test suite at the Mozilla Automated Testing page and still wasn't very clear on what it had to say. I find I need to re-read the Mozilla documentation a couple of times to get a feel for the flow of information. I also had to visit a lot of links to answers some questions I had about how to use the existing automated tests and create future tests.

I mentioned this on irc and Ted said if I re-wrote the Mozilla Automated Testing so that it would be easier to follow he would review and submit it for me. Maybe once I get this testing thing under my belt I'll take that beast.

If only time wasn't money....
I changed my config script to run the Mochitest suite after my initial build of the pgo. I use the Test Suite to gather performance data for the second build of the pgo, this produces the optimized build. The first run took 249 minutes. I had 35 failed tests.

Failed Tests
33 of the failed tests were in relation to bug 391728. It looks like this bug was fixed on 2008-09-29. I'm pretty sure I've updated my trunk since then.
2 of the failed tests were in relation to test_jquery.html. I've blown away my details but once I compile again and re-run the tests I will post more details.

Build Problems
I am having random build problems and as Ted pointed out on irc it is most likely user error and indeed it was/is. I only had 1GB of ram and noticed very long build times so I bought 4GB.

Well it turned out that my motherboard only supports 2GB so I returned the 4GB and bought 2GB with better timings. I have a good cpu and fast memory so I decided to do some overclocking.

Here is where the user error comes in. I forgot to make sure not to overclock my pci bus when I overclocked my cpu. This resulted in weird corruption errors on windows and build errors with Firefox. I believe I have finally cleaned up my harddrives from the invalid file handles that were created.

Goal
My goal this weekend it to build an optimized Firefox that was profiled using the xpcshell tests and Mochitest.

Links of Interest
Mozilla Automated Testing
Running Automated Tests
Complied-Code Automated Tests
Writing xpcshell-based Unit Tests
Mochitest

No comments: