On Thursday, January 31, 2013 8:54:50 AM UTC-8, Ehsan Akhgari wrote: > On 2013-01-31 10:59 AM, ... wrote: > > >> As a historical note, when we first enabled PGO support for Windows our > > >> profiling scenario was "start Firefox, wait 10 seconds, shut down > > >> Firefox". Enabling PGO with this profiling run provided us with 20-25% > > >> perf improvements in many of our benchmarks on Talos. We later changed > > >> it to the current set of profiling data[1] (Blueprint CSS samples, the > > >> SunSpider benchmark), and there was almost no visible change in the > > >> Talos numbers. > > > > > > This seems to indicate our current coverage isn't oriented toward > > > performance gains users will see, and that there are potential > > > gains to be found. All the more reason to keep pgo around a while > > > longer and figure out how we can simplify testing with different test > > > runs. > > > > There are costs to keeping PGO enabled, and while we can argue that we > > _could_ be getting more PGO gain by providing a better profile, one > > could counter-argue that engineers can spend more time optimizing other > > things if they didn't need to find the perfect profile (which is sort of > > a black magic.) > > > > >> We should also remind that there would be an infra load win from > > >> disabling Windows PGO builds. > > > > > > IMHO, if it's a choice between infra load and better performance > > > in the end product, performance should win out. > > > > I agree, infrastructure load is not relevant to this conversation. > > There are tons of other ways to improve that besides disabling PGO. > > > > Cheers, > > Ehsan
I'm weighing in a little late here, but from the JS team's perspective, PGO is a nightmare. It introduces subtle compiler bugs (often topcrashes) that are extremely difficult to track down. We end up littering the codebase with de-PGO hints. To date I have yet to see a PGO-only crash that manifests in the JS engine, that was not directly caused by PGO. Related, I don't think MOZ_LIKELY/UNLIKELY are either a good idea or would cover the PGO gap. PGO does way more than just branch prediction, it has all sorts of speculative partial inlining and register allocation tricks. (That, unfortunately, are buggy.) Anyway, disabling PGO is music to my ears - I'd bet money that our overall crash-stats will improve. -David _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform