Bug 246932
| Summary: | Non-reproducible Speedometer 2.1 scores | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Vladimir Prelovac <vprelovac> |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED INVALID | ||
| Severity: | Normal | CC: | ap |
| Priority: | P2 | ||
| Version: | WebKit Local Build | ||
| Hardware: | Mac (Intel) | ||
| OS: | macOS 13 | ||
Vladimir Prelovac
Hi
I downloaded the latest Safari TP 156 and it scores 211 on Speedometer 2.1 on my iMac Pro (Intel).
Then I checked oout WebKit branch WebKit-7615.1.8.5 (same as the one used in Safari)
git clone --depth 1 --branch WebKit-7615.1.8.5 https://github.com/WebKit/WebKit.git
and built it with
Tools/Scripts/build-webkit --release
When run through run-minibrowser script, it achieves score of 180.
I am wondering what needs to be done to be able to reproduce the same result as the WebKit in Safari TP?
Thanks!
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Alexey Proskuryakov
You can take a look at Production build configuration to see the differences. I would guess that it's mostly ThinLTO and PGO.
Closing as INVALID, as this does not describe a bug that needs to be fixed in WebKit.
Vladimir Prelovac
Thanks @Alexey Proskuryakov for looking into this, I appreciate it.
> You can take a look at Production build configuration to see the differences.
I looked into the avaialble WebKit documentation and I could not find a reference to the Production build.
I wonder if you could point me in the right direction how to run a Production build?
Alexey Proskuryakov
The differences are in DebugRelease.xcconfig files in source code.
Vladimir Prelovac
@Alexey Proskuryakov
After a lot of looking around I was able to find
Tools/Scripts/build-and-collect-pgo-profiles
which referneces two techniques you describe and uses:
make release WK_LTO_MODE=thin ENABLE_LLVM_PROFILE_GENERATION=ON
It also then proceeds to run various benchamrks and collect PGO data. Looking good!
Question: How do I run the rebuild process to include the PGO data folder?
Vladimir Prelovac
Thanks Alexey I was able to figure it out eventually. I wonder if the Production build should be better documented to benefit the wider community?
Alexey Proskuryakov
Such documentation would be welcome indeed.
It is not straightforward for us to do because most differences are related to how Apple internal build system works, and are thus irrelevant to everyone else. Distilling steps necessary to apply performance optimizations is valuable. Great to know that you were able to achieve parity!
Vladimir Prelovac
A "Production" build produces 20% performance improvement over Release WebKit. So anyone working With WebKit would benefit, especially as the gain is 'free' (just build process optimization).
What is the best way to structure this documentation contribution? (as in where in repo)
Alexey Proskuryakov
In the past, I'd say trac.webkit.org, but looks like people are de facto using GitHub wiki these days.