Open tinkerstudent opened 8 years ago
@tinkerstudent The master
version of doppio-demo
is using an old version of DoppioJVM with massive performance regressions, since we fixed a compatibility problem and, in doing so, caused all JAR file extraction to pass through interpreted Java code.
The master
branch of doppio
now uses a JavaScript library for extraction, so it is significantly faster.
The new-objects
branch of doppio-demo
uses the latest version of doppio
, but it is in beta. You'll need to npm link
a locally-built version of the master
branch of doppio
and run webpack
to build it (the README
is out of date).
I wanted to finish the new demo and launch it, but ran out of time. It's mostly complete, but there are some lingering bugs.
@jvilk thanks
Is the master branch of doppio using the Javac.class to compile Java files? Or is there a js library that does the compilation from source code to Java byte code?
I tried the following 1) Built doppio master 2) npm link'ed doppio master. Verified linked doppiojvm exists in node_modules. 3) Built doppio-demo new-objects using "npm install" and "grunt build" (looks like it has a webpack task) 4) Diff verified doppio.js (in the doppio-demo build) with the doppio.js in the doppio/build/release 5) Launched the doppio-demo. 6) Compiled Fib.java. Compilation time is still ~ 30 secs (Chrome 48)
Looks like I missed a step above?
I just reproduced this. You're doing everything correctly. It looks like that's our current level of performance. I thought we were a bit faster than that.
Ever since I originally published Doppio in 2014, I've been working on its compatibility with Java programs. Some changes dramatically improved compatibility, but set back performance.
@jvilk thanks! for confirming.
The version of doppio at https://plasma-umass.github.io/doppio-demo/doppiojvm/index.html seems to have much better perf!
Compiling HelloWorld.java took ~ 4 secs (Chrome 48)
Is there a way I can rollback to that version of doppio?
Well, it's all in Git somewhere. But I'm not going to fix bugs in that version, since it's old and buggy.
Here's the commit behind that demo:
https://github.com/plasma-umass/doppio/commit/9b6666ad8b94d54049846e25981c6120929e55e6
And the old demo code is... well, I think it may be in the gh-pages
branch of doppio
? The website itself w/ the compiled demo is here: https://github.com/plasma-umass/doppio-demo/tree/gh-pages/doppiojvm
Also, I imagine the speed difference is smaller if you remove the overhead of JVM startup. The old demo re-used a warmed up JVM instance for each java
execution, which left leftover state that could mess with subsequent programs. It also cached parsed class
files, which is technically illegal as the contents of the class could change across executions.
@jvilk thanks!. We are going to add a caching layer to the demo. Hoping to get closer to ~ 4 secs on Chrome.
It takes ~ 30 secs to compile Fib.java using Chrome 48
Is this expected?