Just curious, why not run JRuby, Rubinius, and MagLev on Mac as well as Linux?
Hopefully you hadn't started measuring JRuby before JRuby 1.5 was
released?
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=jruby&lang2=ruby
I'd argue that untimed bm is not good because a few rails benchmarks
can actually only run once (they cannot be run-run easily, like timing
"the time it takes to start up a rails app"--hard to repeat that in
the same run--rake test:all is also hard to re-run). A windows
limitation more than anything, but it's nice to keep it cross
platform.
Re: being slow on jruby
I had thought that the tests had each been refactored to 'each take
about 4s' though I'm sure some haven't. Plus 5 iterations..
If that's not the case then I'd say we need to help that test.
Also I wouldn't be averse to refactoring the existing tests to be
"method based" (since apparently Jruby and rubinius (and IronRuby?)
can "only JIT code within a method").
-rp
Rubinius can JIT blocks as well. It's capable of JIT'ing any code context (method, block, eval, class body, script, etc).
- Evan
> -rp
Ahh. I was confusing lack of "on stack" replacement with not being
able to JIT a block. It should work ok then, since we run multiple
iterations.
-rp
Just saying - "The best times out of five iterations were reported,
and these do not include startup times or the time required to parse
and compile classes and method for the first time." - is perhaps bit
too subtle ;-)
BTW, his numbers are really off. I wonder if he messed up the settings
for JRuby. I always make sure that each VM runs at its best. I'm not sure
that he used the --server and other optimization flags.
> We can talk about how to repair the suite, if you like...
That's the whole purpose of the suite being open source. I can grant
access to the repository to whoever wants to contribute (but doesn't
have access now).
> I'm not sure I see the first result being thrown out either; it's
> still there, usually still very slow, and included in at least the
> mean and median calculations. I haven't dug enough to see whether it's
> affecting the final result.
Only the best time is reported, so a slow first run doesn't affect the
end results.
Also I wouldn't be averse to refactoring the existing tests to be
method based. If it makes the tests more realistic, I'm all for it.
> When you do publish your new measurements, would it be appropriate to
> state very clearly that the implicit assumption is server-side Ruby?
Yes, I can do this.
Cheers,
Antonio
1) Are the parameters you use in configuration files, that he could
access when he grabbed the ruby-benchmark-suite? (I didn't look
properly.)
2) The visibility provided by showing the compile time and run time
command lines alongside the program source code and program output, on
the benchmarks game website, has allowed people to tell me that I
should be using some other parameter.
That approach seems less workable when publishing on a blog - and
perhaps makes it important to have them somewhere obvious on github.
Might be good toincludeinclude REE for one of those, as well.
I forgot to mention that REE will be included as well (on Linux).
Sure, until one of the benchmarks hangs or segv's the executable.
Note - I'm notcommentingcommenting about the Ruby Benchmark Suite as-used-by-
Ruby-implementors but about Antonio's Great Ruby Shootout.