[FX/TB] MacOSX Builders Unite!

Discussion of third-party/unofficial Firefox/Thunderbird/SeaMonkey builds.
Locked
mento
Posts: 180
Joined: April 23rd, 2005, 1:33 pm

Post by mento »

powerbook wrote:-O0 -> No optimization (default), as used in the official builds.
Official builds for Mac OS X are done at -O2. If you don't specify --enable-optimize or --disable-optimize, or if you use --enable-optimize without any specific optimization flags, you get -O, which is equivalent to -O1.
User avatar
elfurbe
Posts: 447
Joined: May 24th, 2004, 9:48 am
Location: Tucson, AZ
Contact:

Post by elfurbe »

The optimization level thing is been a nebulous issue, so far. Powerbook had a nice little array of tests that he did to benchmark Firefox, but we've never had a single builder build both types of build and then do a comparison. The problem truly lies in the difficulty in generating a proper benchmark suite for a web browser, and the subjective experience of web browsing which varies greatly between users depending on what sites they visit. For some, one build type may "feel" faster than the other, even though there's no objective evidence at the moment to suggest which is faster. Apple doesn't recommend compiling any software on Mac OSX at -O3, as they feel that the performance benefit of the high-level optimizations are overshadowed by the increased code footprint. The classic argument goes something like:
-Smaller binaries fit greater percentages of the executable into CPU cache meaning less requests to main memory which should enhance execution time
-Greater optimization means that the CPU is able to do more work in fewer cycles, meaning less total time to execute

In practice, the only applications where you see great differences in performance between these two types are cpu-intensive scientific code. The rest of the reports are comprable to technological voodoo.

I build -O3 at the moment for two reasons:
a) That's what Powerbook built at, and my initial goal is to continue to provide Powerbookish nightlies
b) It's a bigger number

I used -Os for a while in my personal builds, and I honestly couldn't tell a bit of difference between the two, except that -Os produced notably smaller binaries, though in the age of multi-gigabyte memory computers, the difference between a 16meg binary and a 13meg binary seems utterly moot, especially when you consider that the cache on your CPU is almost certainly no larger than 2megs.

I'll gladly add a -Os build to my script if anyone was a big proponent of oz's builds, but otherwise I'll continue at -O3. One day, I might switch it and not tell anyone, and see if anyone notices, a "blind taste test", so to speak. :)
User avatar
krmathis
Posts: 4699
Joined: May 24th, 2004, 9:40 pm
Location: Oslo, Norway
Contact:

Post by krmathis »

mento wrote:
powerbook wrote:-O0 -> No optimization (default), as used in the official builds.
Official builds for Mac OS X are done at -O2.
Thanks. I've removed the "as used in the official buils" in my post.
I've heard that the official builds are non-optimized, so I asumed they were right. Guess I should have verified...
User avatar
drseuss9311
Posts: 61
Joined: May 28th, 2004, 6:06 pm
Location: ILM
Contact:

Post by drseuss9311 »

thank's powerbook, that was perfect!

would building my own give me even better optimization, as it was built on my machine?
ABP : AiOS : Chatzilla : Customize Google : FireFTP : Flashblock : Greasemonkey : MrTech Toolkit : Coralize (not updated yet) : Context Search : Searchbar Autosizer :: iBookG4
Old R.Marotta
Posts: 0
Joined: December 31st, 1969, 5:00 pm

New to Forum....And Mac's.

Post by Old R.Marotta »

Hello,

I just purchased my First Mac, An iMac G5, 2GB, 400GB HD, 20". I would like to get on board with the G5 Builds as fast as possible,
Can someone email back, From which build I am supposed to use? - I have dl'ed the G5 Build from elfurbe, and its seems quick.
Also, I would like the G5 Build for Thunderbird as well. Will Elfurbe be supporting the G5 Build for TB as well?
Will I be able to use the update-feature?

Side Note -- There is problems with the ExtensionManager, installing extensions/themes in builds of 7-23-05, And I have been in contact
with w.o.o.m about this. The Time frame for the Bug Fix is sometime Monday afternoon - If all goes well.
The Bug(s) have been confirmed ny a number of people.

Thanks In Advance,

Ray -
User avatar
elfurbe
Posts: 447
Joined: May 24th, 2004, 9:48 am
Location: Tucson, AZ
Contact:

Re: New to Forum....And Mac's.

Post by elfurbe »

rmpmw wrote:Hello,

I just purchased my First Mac, An iMac G5, 2GB, 400GB HD, 20". I would like to get on board with the G5 Builds as fast as possible,
Can someone email back, From which build I am supposed to use? - I have dl'ed the G5 Build from elfurbe, and its seems quick.
Also, I would like the G5 Build for Thunderbird as well. Will Elfurbe be supporting the G5 Build for TB as well?
Will I be able to use the update-feature?

Side Note -- There is problems with the ExtensionManager, installing extensions/themes in builds of 7-23-05, And I have been in contact
with w.o.o.m about this. The Time frame for the Bug Fix is sometime Monday afternoon - If all goes well.
The Bug(s) have been confirmed ny a number of people.

Thanks In Advance,

Ray -


Congrats on your new Mac! Welcome to the cult. I build nightly cvs builds for G5, and so does Drumsticks. Drumsticks does a lot more tweaking of compiler options than myself, so you may find his builds speedier. I keep a listing of both our builds at http://www.furbism.com/firefoxmac and you can find Drumsticks' builds at http://www.beatnikpad.com/archives/2005 ... 5nightlies. Also on the beatnikpad site is the latest release build of Firefox by Thenonsuch at http://www.beatnikpad.com/archives/2005 ... firefox106. I'm a nightly user myself, but if you want something stable, go release.

Currently I'm only building Firefox. I haven't developed a methodology for building Thunderbird yet. It's on my disturbingly long list of to-dos. Drumsticks builds Thunderbird with G5 optimizations at the moment, so his builds should do the trick. You can find them here: http://forums.mozillazine.org/viewtopic.php?t=256517.

As for the bugs, I hadn't noticed them myself, but I'm always glad to hear about bugfixes.

Enjoy the optimized goodness!
User avatar
drseuss9311
Posts: 61
Joined: May 28th, 2004, 6:06 pm
Location: ILM
Contact:

Post by drseuss9311 »

rmpmw... Welcome!

I've been on mozillazine for a while, but got my first mac in feb. (ibook)

so, congrats and again, welcome
ABP : AiOS : Chatzilla : Customize Google : FireFTP : Flashblock : Greasemonkey : MrTech Toolkit : Coralize (not updated yet) : Context Search : Searchbar Autosizer :: iBookG4
Old R.Marotta
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Serious trouble in extension land....

Post by Old R.Marotta »

Are there others out there having trouble getting extensions loaded or recognized?
Looks like major changes are in store for the Extension Manager, If you have not already found out.
I still cannot get any extensions recognized, I switched back to ff 1.06 and all my extensions load and show up as normal.

I've been using the Deer Park Nightlies and updating with the update feature.

Any ideas?
User avatar
folletto
Posts: 9
Joined: January 14th, 2005, 4:59 am
Location: Milan, Italy
Contact:

Post by folletto »

Just a little hint: maybe I've missed it, but it could be very useful if you link back this thread from the official builds page on furbism.com :)
Folletto Malefico "@ | IntenseMinimalism.com
User avatar
elfurbe
Posts: 447
Joined: May 24th, 2004, 9:48 am
Location: Tucson, AZ
Contact:

Post by elfurbe »

folletto wrote:Just a little hint: maybe I've missed it, but it could be very useful if you link back this thread from the official builds page on furbism.com :)


That's far too sensible.

Done.
drumsticks
Posts: 607
Joined: April 14th, 2005, 4:32 am
Location: Australia

Post by drumsticks »

elfurbe: Have you experimented with parallel build options? That is, the build option "mk_add_options MOZ_MAKE_FLAGS=-j4"? I can't remember my sources, but I recall that the default is -j1, which specifies one build thread. With dual CPU machines, -j4 (instead of -j2) is optimal. Somehow 4 threads are more efficient than 2 threads on dual CPU machines, but 1 thread is faster on a single CPU machine. The latter is obvious, of course.

I'm assuming you've got a dual CPU machine, that is...

I'll try to test if there are any build time differences when I can. Note that this does not produce any faster or slower code, it just might help make the build process faster.
User avatar
elfurbe
Posts: 447
Joined: May 24th, 2004, 9:48 am
Location: Tucson, AZ
Contact:

Post by elfurbe »

I haven't played with that. I use -j2 on my G5, but I'll switch to -j4 and try it out as well. Not that my build time is particularly long at the moment anyway... :D
drumsticks
Posts: 607
Joined: April 14th, 2005, 4:32 am
Location: Australia

Post by drumsticks »

Ok. This is what I've gathered so far...
- #threads < #CPUs, under utilized, bad
- #threads = #CPUs, theoretically ideal, good for single CPU machines
- #threads > #CPUs, if difference is small, practically ideal, high CPU utilization, small context switching
- #threads >> #CPUs, too much memory and context switching, bad

This probably explains why >2 threads may be better for dual CPUs. I'll try this weekend to plot a graph of 2, 3, 4, 5, etc. threads to see which is optimal for my dual CPU machine. It will of course be different machines depending on HD speed, RAM, etc...

Further, there is a difference depending on thread blocking. If threads are quick and don't block, a small number is good. If threads take a long time and block, a larger number will keep the CPU use high.
User avatar
elfurbe
Posts: 447
Joined: May 24th, 2004, 9:48 am
Location: Tucson, AZ
Contact:

Post by elfurbe »

So, I did a test build with -j4.

Compared to -j2, it does about nothing, if I did my date arithmetic right.

-j4 yielded a compile time of: 28:22
-j2 yielded a compile time of: 28:18

4 seconds is easily insignificant error, so I call them the same.

I'll be curious to see what you get.
drumsticks
Posts: 607
Joined: April 14th, 2005, 4:32 am
Location: Australia

Post by drumsticks »

On my dual 2GHz G5 with 2GB RAM, using a fixed source code (no CVS checkouts) and the same compiling options (except of course this one):

-j1 building took 45 minutes
-j2 building took 31 minutes
-j3 building took 30 minutes
-j4 building took 30 minutes
-j5 building took 30 minutes
-j6 building took 30 minutes

I didn't bother calculating the time in seconds. This was with nothing else running on the system. -j1 is significantly slower because the second CPU is not used effectively. On the other hand, -j2 and above seem to yield identical results. As the number of build threads increase further, we should see a decline in performance as more memory and context switching start to occur.

Conclusion: -j2 is recommended to anyone with a similar configuration.
Locked