-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Optimize MegaPhase #3393
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize MegaPhase #3393
Conversation
test performance please |
performance test scheduled: 1 job(s) in queue, 0 running. |
performance test failed: Error line number: 19 [check /data/workspace/bench/logs/pull-3393-10-26-19.09.out for more information] |
test performance please |
performance test scheduled: 1 job(s) in queue, 0 running. |
performance test failed: Error line number: 19 [check /data/workspace/bench/logs/pull-3393-10-26-19.25.out for more information] |
How can I find out what failed? |
@odersky This is a regression of the bench infrastructure. I've reverted the changes on the server to the old code. |
test performance please |
performance test scheduled: 1 job(s) in queue, 0 running. |
Performance test finished successfully: Visit http://dotty-bench.epfl.ch/3393/ to see the changes. Benchmarks is based on merging with master (26aba2b) |
The website is already pushed to github as usual, but seems gh-pages have some problem in publishing it: https://github.com/liufengyun/bench/tree/gh-pages/3393 I plan to host the site on our own server instead. |
test performance please |
performance test scheduled: 1 job(s) in queue, 0 running. |
Performance test finished successfully: Visit http://dotty-bench.epfl.ch/3393/ to see the changes. Benchmarks is based on merging with master (26aba2b) |
The new implementation is essentially a slightly cleaned-up version of the old one from TreeTransformers, which seemed to performed better. The main difference (besides renaming things) is that prepare operations still return contexts instead of TreeTransforms.
(reverted from commit 0934483)
32b4e1c
to
a7c34ec
Compare
test performance please |
performance test scheduled: 1 job(s) in queue, 0 running. |
Performance test finished successfully: Visit http://dotty-bench.epfl.ch/3393/ to see the changes. Benchmarks is based on merging with master (68cc7ee) |
Tests are still a bit too noisy to be able to isolate effects of changes in detail but we are at all-time lows for compile times for Vector, scalapb and dotty, so I'd say it's a success overall. |
Note that the removal of TreeTransform is likely to have a signficant impact on the benchmark here since you're compiling a thousand lines of code less. Is it possible that the original MegaPhase stuff is slower for dotty just because you were compiling more code? |
@smarter Yes, removal of TreeTransform is surely a large part of the improvement of the dotty test. But we see smaller improvements for scalapb and Vector as well. |
#3366 did lose some performance relative to the previous tree transform scheme.
http://dotty-bench.epfl.ch/3366/
shows a loss of about 4% for scalapb and dotty. This PR is trying to get it back by reverting to a scheme close to the previous TreeTransform. We keep the new names, and shorten everything by about 20%, but otherwise rely on a similar dispatch algorithm as before.