Pure Interpreter Speed
Thomas Wuerthinger
thomas.wuerthinger at oracle.com
Fri Oct 24 12:56:41 UTC 2014
Stefan,
The speed you are measuring in both cases is the one of the server compiler executing your Truffle interpreter.
In a plain VM, a call to Truffle.getRuntime() [1] will return an instance to DefaultTruffleRuntime whereas in a Graal VM, it will return an instance to HotSpotTruffleRuntime. The former is executing faster in the interpreter, but does not have the ability to compile and partial evaluate the trees for faster execution. We might be able to tweak the latter (e.g., disable profiling for some periods) - but interpreter-only speed has not been a priority. A large part of the performance difference most likely derives from argument and return value profiling for Truffle calls that we only do in the second case.
- thomas
[1] http://lafo.ssw.uni-linz.ac.at/javadoc/graalvm/com.oracle.truffle.api/javadoc/com/oracle/truffle/api/Truffle.html#getRuntime()
More information about the graal-dev
mailing list