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
update travis matrix (add truffleruby, remove rubinius) #695
update travis matrix (add truffleruby, remove rubinius) #695
Conversation
Nice! I didn't even know that Rbx was still being developed. |
looks like rbx 5.0 has been released a week ago 😄 However, I wasn't able to find any announcements or articles about it (maybe they are still WIP) |
7a5c5df
to
12eac91
Compare
@eregon It takes ~15 minutes to run a test suite (for MRI 2.7 it's only 30s). Is there any way to make it faster? |
I'll take a look. |
An easy gain that makes it about 2x faster is to not run with COVERAGE=1. Coverage is usually not that expensive, but here there is a custom BTW on MRI I also see that COVERAGE=1 is >2x slower (11.3s with, 3.5s without for specs), but of course it doesn't matter with those times. |
d3e969a
to
e8276b8
Compare
Something else that also speeds it up about 2x is to use the latency Mode, which improves warmup (i.e., JIT faster) by reducing splitting and inlining (at the cost of peak performance, but rarely relevant for tests).
gives me locally 68s specs 1min17s total. For the record, |
@eregon Thanks! I'll play with locally. Compiling parsers using |
It takes about 5s per file with
Yes, and in fact it's significantly slower with the JIT disabled. It's always useful to e.g. speculate that |
Yes, I've got similar results locally (16s -> 8s). Also, I've noticed that using pure ruby version of racc saves extra second, but there's no clean way to enforce it. Thanks a lot, I'll add this option to CI config. Side question, is it applicable to all pure/ext libraries like |
Interesting, how did you force using the Ruby version of
No, it depends. Sometimes the Ruby version is faster and sometimes the C extension is faster. |
well, there's no simple way to do it. Here - https://github.com/ruby/racc/blob/master/lib/racc/parser.rb#L197 - I added $ racc --runtime-version
racc runtime version 1.4.15 (rev. $Id: 2bd697d1146b280d8d3878e21e556ef769484a37 $); c core version 1.4.15 (rev. 1.8)
# vs
$ racc --runtime-version
racc runtime version 1.4.15 (rev. $Id: 2bd697d1146b280d8d3878e21e556ef769484a37 $); ruby core version 1.4.15 (rev. 2bd697d1146b280d8d3878e21e556ef769484a37) also, IIRC |
No description provided.