https://github.com/bd808/bug-67168
HHVM HHBC experiments with MediaWiki
https://github.com/bd808/bug-67168
Last synced: 8 months ago
JSON representation
HHVM HHBC experiments with MediaWiki
- Host: GitHub
- URL: https://github.com/bd808/bug-67168
- Owner: bd808
- Created: 2015-06-30T22:21:13.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-06-30T22:21:49.000Z (almost 11 years ago)
- Last Synced: 2025-06-06T14:39:44.845Z (about 1 year ago)
- Language: Perl
- Homepage: https://static-bugzilla.wikimedia.org/bug67168.html
- Size: 105 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
Tim described it better than anyone else:
HHVM has a mode called RepoAuthoritative, which requires you to
pre-compile all the bytecode before you run the program. It's said to
give 30% faster execution or so. During pre-compilation for
RepoAuthoritative, an attribute called AttrUnique is set on functions
and classes that have only one implementation for a given name.
So when there is only one MW version in pre-compilation, AttrUnique
should be set on most things, but if there is more than version, it
should be set on almost nothing. If you don't use RepoAuthoritative,
it should also be set on nothing. AttrUnique is used by the IR and MC
emitters, apparently for optimisation.
My suspicion is that having multiple versions of MW will not
completely stop code from being JITed, rather it will just give you a
slowdown of up to 30%, equivalent to not using RepoAuthoritative.
I think a good benchmark would be to parse some large page that has
anything Lua-related stripped out of it (since LuaSandbox still has
bugs in it). Then get benchmarks with:
* RepoAuthoritative off
* RepoAuthoritative on with one MW version precompiled
* RepoAuthoritative on with two MW versions precompiled
----
./clean.sh &&
./build.sh &&
./test.sh 2>&1 |
tee results/test-$(date +%Y%m%dT%H%M).log