jit-benchmarks icon indicating copy to clipboard operation
jit-benchmarks copied to clipboard

Java VMs?

Open CatapanoG opened this issue 4 years ago • 6 comments

Your repos on benchmarks are amzing! There'is so much interesting stuff!

Do you plan to include any of the available Java VMs in this benchmark? Do you find it appropriate/interesting?

Thank you

CatapanoG avatar Jan 08 '21 20:01 CatapanoG

what of java vm you mean? scala? i not realy familiar with java world.

kostya avatar Jan 08 '21 20:01 kostya

there're multiple Java implementations: HotSpot (most common), OpenJdk, OpenJ9, Graal... in multiple versions

Java is also highly tunable via parameters. For example, you can choose a different Garbage Collector https://blogs.oracle.com/javamagazine/understanding-the-jdks-new-superfast-garbage-collectors

this applies to Java-based runtimes like JRuby and Jython (and TruffleRuby, but it does support GraalVM only) Scala is also a language implement on top of the Java runtime

it might be interesting to compare different Java VMs, but I think it's out of the scope of this repository.

ahorek avatar Jan 09 '21 21:01 ahorek

what of java vm you mean? scala? i not realy familiar with java world.

I am not an expert either. Basically the Java programming language is first translated into bytecode (and you get .jar files) and then compiled at runtime (that´s why I thought it would qualify here, it is JIT compilation) in a virtual machine (VM).

If you look here: https://en.wikipedia.org/wiki/Just-in-time_compilation

you would see that Java has JIT compilation. As @ahorek said above, there are various types of Java VM and various versions. It would be very interesting to compare at least some of the major ones.

If you want, I could try and help.

CatapanoG avatar Jan 11 '21 21:01 CatapanoG

there're multiple Java implementations: HotSpot (most common), OpenJdk, OpenJ9, Graal... in multiple versions

Java is also highly tunable via parameters. For example, you can choose a different Garbage Collector https://blogs.oracle.com/javamagazine/understanding-the-jdks-new-superfast-garbage-collectors

this applies to Java-based runtimes like JRuby and Jython (and TruffleRuby, but it does support GraalVM only) Scala is also a language implement on top of the Java runtime

it might be interesting to compare different Java VMs, but I think it's out of the scope of this repository.

Could you please clarify why would it be out of scope in this repository?

CatapanoG avatar Jan 11 '21 21:01 CatapanoG

I think it's worth a separate project.

ahorek avatar Jan 11 '21 21:01 ahorek

Given the current list of scripting/high-level dynamically-typed languages, I think Java wouldn't really fit here. Java is not used like Ruby/Python/JS/Lua is. That's just my opinion though.

It would probably make more sense to compare Java to Crystal or so, but in this repo C/Crystal are used as baselines. Maybe a single version & VM of Java would make sense as a baseline?

As mentioned, there are many implementations of Java, but probably 95+% use HotSpot, so the rest is fairly niche, and most likely wouldn't make much sense for a baseline.

eregon avatar Jan 12 '21 00:01 eregon