Quick comparison of start times with Java and IKVM-compiled binaries

Today, I was curious about the start times of .NET binaries created from Java sources using IKVM. I took the opportunity to add IKVM compilation (kvmc) to Barcode4J‘s build.

If I create a shell script that runs Barcode4J’s command-line (PDF417 barcodes as EPS files) interface 20 times, I get the following times:

  • IKVM 0.30: 15 seconds
  • Sun JDK 1.5.0_08: 8 seconds

So, how does it look like if I do the loop in Java code and create 500 barcodes in one call?

  • IKVM 0.30: 1900ms (first 500), 1400ms (second 500 and subsequent)
  • Sun JDK 1.4.2_10: 1800ms (first 500), 1550ms (second 500 and subsequent)
  • Sun JDK 1.5.0_08: 1800ms (first 500), 1550ms (second 500 and subsequent)
  • Sun JDK 6.0beta: 1700ms (first 500), 1400ms (second 500 and subsequent)

Looks like JVM startup time isn’t so bad compared to .NET. But I don’t know how much overhead IKVM brings into the picture.

(I’ve taken all timings multiple times and have rounded the averages to 50ms. Operating System: WinXP SP2, .NET Framework 2.0. Machine: Custom-built AMD Athlon 64 3200+)

Posted in Barcodes