On 10/11/2012 02:33 AM, Mike Hommey wrote:
On Wed, Oct 10, 2012 at 05:57:53PM -0400, Justin Lebar wrote:
By "turning off Linux PGO testing", you really mean "stop making and
distributing Linux PGO builds," right?
The main reason I'd want Linux PGO is for mobile. On desktop Linux,
most users (I expect) don't run our builds, so it's not a big deal if
they're some percent slower.
Many people have made claims about that at several different occasions.
Can we once and for all come up with actual data on that?
That being said, PGO on Linux is between 5 and 20% improvement on our
various talos tests. That's with the version of gcc we currently use,
which is 4.5. I'd expect 4.7 to do a better job even, especially if we
added lto to the equation (and since we are now building on x86-64
machines, we wouldn't have to worry about memory usage ; link time could
be a problem, though).
Also note that disabling PGO currently also means disabling the
optimizations we do on omni.ja (central directory optimizations and
reordering). This is somehow covered by bug 773171.
I wouldn't be surprised if most of the pgo benefit is because of bad
inline decisions by gcc. If we can narrow the gap by adding
MOZ_ALWAYS_INLINE, then maybe we can drop pgo.
I did a talos run during the last clang update to compare it with the
previous version on OS X, but I now added linux runs to compare gcc 4.5
and clang on linux. The results are interesting (see attached file).
dromaeo_dom shows a 31% improvement on 64 bits for example.
This also suggests another option: using clang on linux too. This would
have the added benefit of using the same compiler for OS X and Linux,
which would remove most of the argument of developers spending time on
linux only issues. I can do a comparison of gcc+pgo and clang if others
are interested.
Mike
Cheers,
Rafael
a11yr_paint
Fedora 12 - Constantine | (527.681818182, 2.59651983057) -> (413.15,
1.41403960494) 1.2772x better
Fedora 12 x64 - Constantine | (451.454545455, 1.24422992408) -> (349.45,
0.819984718342) 1.2919x better
dromaeo_css
Fedora 12 - Constantine | (2152.09181818, 12.0144869607) ->
(2639.839, 8.95312637755) 1.2266x better
Fedora 12 x64 - Constantine | (2485.29272727, 13.7659449067) ->
(2921.445, 17.8096790459) 1.1755x better
dromaeo_dom
Fedora 12 - Constantine | (142.806181818, 0.744898237637) ->
(187.9765, 0.650195498534) 1.3163x better
Fedora 12 x64 - Constantine | (181.576818182, 0.806482009967) ->
(232.0514, 1.34925457235) 1.2780x better
kraken
Fedora 12 - Constantine | (3939.40909091, 71.9270328223) -> (3767.41,
71.3917310166) 1.0457x better
Fedora 12 x64 - Constantine | (3579.29090909, 15.596652341) -> (3446.56,
9.33275577468) 1.0385x better
num_ctors
CentOS (x86_64) release 5 (Final) | (232.0, None) -> (174.0,
None) 1.3333x better
CentOS release 5 (Final) | (232.0, None) -> (174.0,
None) 1.3333x better
sunspider
Fedora 12 - Constantine | (364.172727273, 1.5583412188) -> (345.08,
1.26271089553) 1.0553x better
Fedora 12 x64 - Constantine | (334.363636364, 2.07058055282) -> (321.97,
2.64172734312) 1.0385x better
tdhtmlr_nochrome_paint
Fedora 12 - Constantine | (417.558727273, 0.728348424302) ->
(392.9735, 0.424360042529) 1.0626x better
Fedora 12 x64 - Constantine | (390.3705, 0.633414181048) ->
(359.1264, 6.1131889195) 1.0870x better
tdhtmlr_paint
Fedora 12 - Constantine | (433.884909091, 4.67646883558) ->
(402.9236, 4.62643754814) 1.0768x better
Fedora 12 x64 - Constantine | (398.0735, 3.51583823606) ->
(368.2883, 1.94210482286) 1.0809x better
tp5n_main_rss_paint
Fedora 12 - Constantine | (114134400.0, 271577.523722) ->
(115129700.0, 280881.107982) 1.0087x worse
Fedora 12 x64 - Constantine | (149395900.0, 563431.271779) ->
(148169900.0, 430915.422528) 1.0083x better
tp5n_paint
Fedora 12 - Constantine | (377.5355, 2.28065749844) ->
(316.3663, 2.72038848381) 1.1933x better
Fedora 12 x64 - Constantine | (325.3768, 3.31696113133) ->
(278.6602, 3.33314780988) 1.1676x better
tp5n_xres_paint
Fedora 12 - Constantine | (7249195.0, 114562.779547) ->
(7640897.0, 218688.473551) 1.0540x worse
tpaint
Fedora 12 - Constantine | (214.727272727, 2.47305127989) -> (187.4,
7.74235973322) 1.1458x better
Fedora 12 x64 - Constantine | (203.545454545, 3.0539930444) -> (173.2,
4.81738641223) 1.1752x better
tresize
Fedora 12 - Constantine | (13.0813363636, 0.276579872514) ->
(11.8753, 0.318387813206) 1.1016x better
Fedora 12 x64 - Constantine | (12.0, 0.0) -> (11.0,
0.0) 1.0909x better
ts_paint
Fedora 12 - Constantine | (706.287090909, 3.15497376791) ->
(641.8735, 3.61716922776) 1.1004x better
Fedora 12 x64 - Constantine | (656.445, 1.80961735305) ->
(602.1632, 3.31640631973) 1.0901x better
tscrollr_paint
Fedora 12 x64 - Constantine | (16857.3727273, 4.77056976419) ->
(16833.32, 2.39441325698) 1.0014x better
tspaint_places_generated_max
Fedora 12 - Constantine | (707.2684, 2.72687947138) ->
(641.3894, 3.16920410573) 1.1027x better
Fedora 12 x64 - Constantine | (658.7789, 4.1605723528) ->
(604.4052, 1.60219463203) 1.0900x better
tspaint_places_generated_med
Fedora 12 - Constantine | (700.1843, 4.30450967551) ->
(637.8155, 4.1260230609) 1.0978x better
Fedora 12 x64 - Constantine | (657.1211, 4.50905085597) ->
(603.0895, 2.4221657736) 1.0896x better
tsvgr_opacity
Fedora 12 - Constantine | (100.727272727, 1.10814017075) -> (86.2,
0.650233384763) 1.1685x better
Fedora 12 x64 - Constantine | (81.45, 0.744935926267) -> (70.9,
0.758605615557) 1.1488x better
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform