Eccentric Developments


Raybench - Java (PLC pt.14)

Java, Java, Java... while having a pervasive presence in the world of programming, no body seems to like it very much (at least on my circle of acquaintances).

Appearing back in 1995 as a general purpose language, claiming multi platform compatibility, Java has gained a huge popularity. It has been used in projects of different sizes, spanning web servers to enterprise applications, as well as embedded systems.

Java is intended to work on a virtual machine (JVM), that compiles into it's own byte code format, in contrast to languages that compile to native binaries. Because of this, Java has a reputation of being slow, but... is it?

Results

Java 1.7.0_111, OpenJDK IcedTea 2.6.7, was used for running the tests.

Compile time

How fast does the compiler takes to generate the binary.

$ time javac javarb.java

real	0m4.024s
user	0m3.692s
sys     0m0.296s

Java compiles pretty fast as you can observe, faster than GCC.

Running Time

$ time java javarb

real    2m36.949s
user    2m34.344s
sys     0m1.832s

O_O!

Code Metrics

Line count: 287 code, 70 blank, 357 total. File size:7722 bytes.

This implementation is almost as big as C, and also a little bit bigger than C#. Nothing unexpected here.

General Thoughts

Well, I wasn't foreseeing this. Java is known as a slow language by many people, but it turns to be not the case, at least on this benchmark; performing close to C level performance, which is very nice.

Maybe it's time to start taking Java more seriously for high performance computing.

Follow

You can follow the development of this project on GitHub: https://github.com/niofis/raybench

Enrique CR - 2016-09-04