Open main menu

CDOT Wiki β

PGO Related Bugs

Revision as of 14:17, 20 September 2008 by Cbishop2 (talk | contribs) (September)

Project Name

PGO Related Bugs

Project Description

Firefox crashes or experiences bugs after creating PGO builds on Windows. The focus of this project is to determine what is causing these crashes or bugs and either patch/fix them or find solutions to allow for the optimizations without incurring the problems.

Project Leader(s)

Project Contributor(s)

- None so far but that will change.

NOTE: only Project Leader(s) should add names here. You can’t add your own name to the Contributor list.

Project Details

Details to come...

Project News

September



Met with Ted Mielczarek ( Sept 15th, 2008 )

    On Tuesday after the conference was over I met with Ted and we discussed how I can get started on the PGO Project.

Created First Build ( Sept 17th, 2008 )

    I walked through the Mozilla documentation for how to build Firefox. I started here with getting the source code and continued until I received errors. Humph and Ted on IRC helped me sort it out and I successfully built Firefox.

Created Project Page ( Sept 18th, 2008 )

    I created this page for the project and added it to the list of Projects.

Working with PGO ( Sept 19th, 2008 )

    Working with some old assignments in c and c++ I tried to compile these programs with pgo options but the linker failed on both projects. Also tried from inside of Visual Studio 2008 but received compilation errors.

Compiled an Old Assignment with PGO ( Sept 20th, 2008 )

    My previous attempts at compiling the old assignment failed because I was including object files that were compiled with a different compiler. Oops. I was successful at creating a PGO build with an old assignment.

The program loads 15,000 random records from a text file into 4 tables each using a different method for storage and searching.

  1. Simple Table: Uses an array and a linear search.
  2. Chain Table: Uses an array of link lists. Search is done with a Hash Key.
  3. Hash Table: Uses an array and searches with linear probing. Also uses a Hash Key.
  4. Tree Table: Uses a binary search tree.


After the data is loaded into a table, 30 different tests are run against it. The same 30 tests for each table. Here are the Results.

Non-PGO PGO Improved By
Simple Table: 28 Secs 4 Secs 7x
Chain Table: 0.109 Secs 0.047 Secs 2.3x
Hash Table: 0.141 Secs 0.047 Secs 2.3x
Tree Table: 0.287 Secs 0.078 Secs 3.6x


I think I will look at the optimization data to figure out how it optimized my application. I also need to build an optimized version of Firefox and run it. I know it has bugs or crashes, that is the point of this project so I also need to figure out how to compile and debug Firefox in Visual Studio.