Open Bug 977658 Opened 11 years ago Updated 3 days ago

Windows PGO builds much slower than non-PGO builds on "cold" code

Categories

(Core :: JavaScript Engine, defect)

defect

Tracking

()

People

(Reporter: jandem, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: perf, Whiteboard: [js:p2])

Attachments

(1 file)

Attached file Testcase
I'm attaching a simple micro-benchmark that repeatedly calls the |set| method on typed arrays. This testcase is 2x faster with a non-PGO build. Apparently the compiler deoptimizes (stops inlining trivial functions etc) code that's not exercised during the profile run, and because the profile run is based on SS + a handful of other scripts, this probably affects a lot of code. I wonder if this also makes DOM benchmarks slower.
> I wonder if this also makes DOM benchmarks slower. Chances are, no, since starting the browser exercises a bunch of DOM stuff, from the browser UI itself...
Keywords: perf
Whiteboard: [js:p2]
FWIW I did some tests a few weeks ago on the difference between PGO and non-PGO on the major benchmarks with Ion disabled (BC enabled) and found that while SS gets a fairly significant speedup (I think it was around 5%), Kraken and Octane are essentially unaffected. Of course BC is less important for these in practice (with Ion enabled), but there might still be some value in running those during the profile run as well.
Depends on: 1030706
Severity: normal → S3

do we even ship non-PGO anymore?

Nightly: https://share.firefox.dev/47i0rwY (280ms without the profiler)
Chrome: 138ms

Even though the original concern was that the test is slower in non-PGO, I guess today the relevant question is is we are faster than the competition.

Nightly: https://share.firefox.dev/4jk7eM9 (290ms without the profiler)
Chrome: 145ms

Blocks: sm-opt-jits
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: