My Patch has made it into mozilla-central.
Here is the patch.
Here is the bug.
Here is my happy dance.
Saturday, December 6, 2008
Friday, December 5, 2008
Patch Reviewed!
Sweet! My patch was reviewed.
I just have to fix the comments in the patch and it is good to go.
I'm not sure what to do after I attach the updated patch.
This is the bug.
I just have to fix the comments in the patch and it is good to go.
I'm not sure what to do after I attach the updated patch.
This is the bug.
Optimizing the Thunderbird Address Book - cont'd.
I am still attempting to generate some optimization data for the address book.
One Success
The address book objects were compiled with the speed optimization. I must not have been hitting any
I'm looking through the
Note:
I also notice that when I turn on PGO for Thunderbird that all the modules get the default optimization which is the size optimization.
I will have to build a non-pgo build of Thunderbird to see if it makes a difference.
One Success
The address book objects were compiled with the speed optimization. I must not have been hitting any
xpcom
calls to the c++
code. The opening and closing of windows must have been all js
and xul
code.I'm looking through the
c++
code to see what functions are available. I am going to try and profile to hit these functions. I also am trying to enable speed optimizations for the entire mail.dll
in the Makefile in the mail.dll
directory. This might not work.Note:
I also notice that when I turn on PGO for Thunderbird that all the modules get the default optimization which is the size optimization.
I will have to build a non-pgo build of Thunderbird to see if it makes a difference.
Thursday, December 4, 2008
Optimizing the Thunderbird Address Book.
I did a quick edit for the Makefile.in file for the address book in the Thunderbird source. I was hoping this would enable pgo for this module.
Here is the diff for the changes I made.
I was able to successfully build thunderbird with these options but during the profiling no optimization data was collected. If data is collected a
I haven't looked at my build output to confirm that the library and
I hope to get some more information before my 0.3 is released.
Here is the diff for the changes I made.
I was able to successfully build thunderbird with these options but during the profiling no optimization data was collected. If data is collected a
.pgc file
is created. This library is added into the mail.dll
so a mail.pgc file
should have been created. None was.I haven't looked at my build output to confirm that the library and
mail.dll
were compiled with the optimizations. I did notice that mail.dll
library was compiled with the instrumental option. This means the mail.dll
had the extra instructions to collect profile data. It is possible that my profiling did not actual affect the address book.I hope to get some more information before my 0.3 is released.
Tuesday, December 2, 2008
Patch Review Process
I've had my patch posted for about a week and still haven't not had a review. So I decided to jump on IRC and try and ask for a review.
My Project is PGO and apparently there is only one guy who owns that sort of code, Ted Mielczarek. I sent a private message to Ted and an open message on the
So it all rests with Ted.
I was nervous posting on IRC or messaging Ted because I still don't understand the etiquette of that sort of thing. But everyone responded nicely which makes me feel better.
This experience with IRC is helping me feel better about asking questions from people I don't know.
My Project is PGO and apparently there is only one guy who owns that sort of code, Ted Mielczarek. I sent a private message to Ted and an open message on the
#maildev
channel to see if I could get a review. Ted responded that he is working on his review queue and would be getting to my patch. On the #maildev
channel Standard8 pointed me to Ted.So it all rests with Ted.
I was nervous posting on IRC or messaging Ted because I still don't understand the etiquette of that sort of thing. But everyone responded nicely which makes me feel better.
This experience with IRC is helping me feel better about asking questions from people I don't know.
Sunday, November 30, 2008
Seneca How-To Page
For contribution marks I created a How To Page on the Seneca Wiki. This How to page will have walkthroughs and tutorials for all the open source projects Seneca is working on.
Right now I have step by step instructions for how to run different tests on Firefox. Others might add how to write a test.
I tried to make the walkthroughs nicer looking than black on white. It is not necessary for people to follow my lead but adding a little extra flare is always nice.
Right now I have step by step instructions for how to run different tests on Firefox. Others might add how to write a test.
I tried to make the walkthroughs nicer looking than black on white. It is not necessary for people to follow my lead but adding a little extra flare is always nice.
Wednesday, November 26, 2008
PGO Patch
I have submitted a patch to for the bug 465592.
The Bug
Currently PGO doesn't work for Thunderbird. For Windows builds the compilation breaks in the LCMS module for the Mozilla core. If PGO is disable for this module then Thunderbird can be built with PGO enabled.
The Patch
After talking with David Humphrey and Ted Mielczarek I modified the Makefile.in in the module/lcms/src directory. To include the following lines.
The MOZ_ENABLE_LIBXUL flag is used to link libraries into a single xul.dll library. On Firefox this flag is used and a number of libraries are linked in the xul.dll, one of these libraries is the mozlcms.lib. This does not happen with Thunderbird. Instead the libraries are made into DLL's. The mozlcms.dll crashes during the optimization build for PGO.
Checking if the flag has not been set means that the mozlcms.lib will be made into a DLL. Since this will crash if PGO is enabled, the NO_PROFILE_GUIDED_OPTIMIZE is set to disable PGO for this one module.
The Result
Well, it works otherwise I would not have posted the patch. I am waiting on a review.
The Bug
Currently PGO doesn't work for Thunderbird. For Windows builds the compilation breaks in the LCMS module for the Mozilla core. If PGO is disable for this module then Thunderbird can be built with PGO enabled.
The Patch
After talking with David Humphrey and Ted Mielczarek I modified the Makefile.in in the module/lcms/src directory. To include the following lines.
ifndef MOZ_ENABLE_LIBXUL
NO_PROFILE_GUIDED_OPTIMIZE = 1
endif
The MOZ_ENABLE_LIBXUL flag is used to link libraries into a single xul.dll library. On Firefox this flag is used and a number of libraries are linked in the xul.dll, one of these libraries is the mozlcms.lib. This does not happen with Thunderbird. Instead the libraries are made into DLL's. The mozlcms.dll crashes during the optimization build for PGO.
Checking if the flag has not been set means that the mozlcms.lib will be made into a DLL. Since this will crash if PGO is enabled, the NO_PROFILE_GUIDED_OPTIMIZE is set to disable PGO for this one module.
The Result
Well, it works otherwise I would not have posted the patch. I am waiting on a review.
Subscribe to:
Posts (Atom)