title: Why is there such a performance difference on Raspberry pi between Open and Oracle JDK?
body: <p>On my Raspberry I did some Performance Tests like CaffeineMark and SciMark with both JVMs. There is a huge performance difference between them even though  I have heard that the differences are very small. I also tried calculating with floating numbers and the Oracle JDK got a better Score even though both should support the hard float abi.</p>
  
  <p>I use <code>Linux raspberrypi 3.18.11-v7+</code> as OS.</p>
  
  <pre><code>OpenJDK:    
  java version "1.7.0_79"  
  OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-1~deb7u1+rpi1)  
  OpenJDK Zero VM (build 24.79-b02, mixed mode)  
  
  OracleJDK:  
  java version "1.7.0_40"  
  Java(TM) SE Runtime Environment (build 1.7.0_40-b43)  
  Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)  
  
  SciMark results:
  
                   OpenJDK            OracleJDK
  Composite Score 14.280735577363213  || 32.24948180361924   
  FFT (1024)      9.482866845055302   || 26.447121360843663  
  SOR (100x100)   27.14938943220646   || 59.68022533004399  
  Monte Carlo     3.6298604956147384  || 10.561671865446971  
  Sparse matmult  15.603809523809524  || 26.64931580928407  
  LU (100x100)    15.53775159013005   || 37.90907465247749 
  </code></pre>
  
  <p>I used a program that counts a float in 0.1 steps to 600000. I tried to test the performance of the JVM on handling floats.</p>
  
  <p>OpenJDK: 257ms<br>
  OracleJDK: 151ms</p>
  
  <p>0.1 steps to 1200000:</p>
  
  <p>OpenJDK: 457ms<br>
  OracleJDK: 263ms</p>
  
  <pre><code>public class Testing {
  
      /**
       * @param args
       */
      public static long Test()
      {
          float counter=0.0f;
          long startTime = System.currentTimeMillis();
          while (counter &lt;= 1_200_000.0f)
          {
              counter += 0.1f;
          }
          return System.currentTimeMillis() - startTime;
      }
  
      public static void main(String[] args){
          System.out.println(Test());
      }
  
  }
  </code></pre>
  
  <p>I tried the enhancements mentioned from SlipperySeal and put the test in the loop. I also tried to use the c2 compiler but the results were not different.</p>