[Vm-dev] Some Performance Numbers: Java vs. CogVM vs. SOM
Eliot Miranda
eliot.miranda at gmail.com
Mon Apr 6 18:06:28 UTC 2015
Hi Stefan,
On Mon, Apr 6, 2015 at 3:12 AM, Stefan Marr <smalltalk at stefan-marr.de>
wrote:
>
> Hi:
>
> Not sure whether I’ll get to write a little more detailed report, but I
> wanted to briefly share a few pieces of data on the performance of the
> CogVM and StackVM. (Spur benchmarks are still running).
>
> I set up a collection of benchmarks to be able to compare the performance
> of Java, my SOM implementations, and Cog/StackVM [1].
>
> The set contains the following benchmarks:
> - DeltaBlue
> - Richards
> - GraphSearch (search in a graph data structure)
> - Json (a minimal JSON parser benchmark)
> - PageRank (a page rank algorithm implementation)
> -- NBody, Mandelbrot, Bounce, BubbleSort, QuickSort, Fannkuch
> -- Permute, Queens, Sieve, Storage, Towers
>
> The Java implementations are here [2] and the SOM implementations here [3].
>
> Naturally, the comparison is not ideal between languages. Java isn’t
> Smalltalk, and neither is Pharo/Squeak exactly the same as SOM. However,
> the benchmarks are ported to resemble as closely as possible the
> implementations in the other languages, with an emphasize on
> modern/Smalltalk-ish style where possible. For instance, the DeltaBlue
> implementation in Java is updated to use Java 8 lambdas and other modern
> APIs.
>
> The Results
> ———————————
>
> The most interesting one is peak performance, after warmup, with 100
> iterations of each benchmark. The results are normalized to Java. This
> means, we see the slowdown factors here (less is better). I also report the
> minimal and maximal values to show the range over all benchmarks.
>
> geomean min max
> Java 8 1.0 1.0 1.0
> latest PharoVM 12.9 2.5 182.4 (not sure which exact version of the
> CogVM that is)
> TruffleSOM 2.3 1.0 4.9
> RTruffleSOM 3.0 1.5 11.5
>
> TruffleSOM is SOM implemented as a self-optimizing interpreter on top of
> Truffle, a Java framework.
> RTruffleSOM is SOM as a self-optimizing interpreter on top of RPython’s
> meta-tracing framework (think PyPy).
>
> So, what we see here is that the CogVM is on average 13x slower than Java
> 8. I think that’s not bad at all, considering that it is not doing any
> adaptive compilation yet. The slowest benchmark is PageRank. The fasted one
> is DeltaBlue.
> Compared to the CogVM, my SOM implementations are doing a little better :)
>
>
> Another interesting data point is the pure interpreter performance:
>
> geomean min max
> Java 8 interp 1.0 1.0 1.0
> PharoVM Stack 1.6 0.5 15.3 (not sure which exact version of the
> StackVM that is)
> TruffleSOM 6.3 1.9 15.7
> RTruffleSOM 5.6 1.6 15.7
>
> What we see here is that the StackVM is actually sometimes faster than the
> Java interpreter.
> While the PageRank benchmark is still the slowest, for the following
> benchmarks, the StackVM is faster than Java’s bytecode interpreter:
> DeltaBlue, Json, NBody, Permute, Richards, Storage, Towers.
>
>
> Well, that’s it for the moment.
> I hope that Clement and Eliot find those benchmarks useful, especially for
> the work on Sista.
>
No response to specifics yet because Clément and I are busy with Sista
internals but YES! Thank you *very much*! As soon as possible we'll be
looking at this in detail.
And, I wonder whether that makes the SOMs the fasted open source Smalltalk
> implementations? ;)
>
> Best regards
> Stefan
>
>
> [1]
> http://smalltalkhub.com/#!/~StefanMarr/SMark/versions/SOM-Benchmarks-StefanMarr.4
> [2] https://github.com/smarr/Classic-Benchmarks/tree/master/benchmarks/som
> [3] https://github.com/SOM-st/SOM/tree/master/Examples/Benchmarks
>
> --
> Stefan Marr
> INRIA Lille - Nord Europe
> http://stefan-marr.de/research/
>
--
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150406/7abfbec6/attachment.htm
More information about the Vm-dev
mailing list