2012-02-21 3 views
0

Я попытался проверить производительность Java на OpenVMS (Itanium, OS 8.3). Я создал несколько примеров классов для тестирования производительности, как показано нижеПроизводительность Java на OpenVMS

ХЭЗ [АУН] $ типа Test.java

import java.util.Date; 

public class Test { 
    public static void main(String args[]) { 
     Date d1 = new Date(); 
     System.out.println(d1); 
     for (int k = 0;k < 1;k++) { 
      for (int i = 0;i < Integer.MAX_VALUE;i++) { 
       for (int j = 0;j < Integer.MAX_VALUE;j++) { 

       } 
      } 
     } 
     Date d2 = new Date(); 
     System.out.println(d2.getTime() - d1.getTime()); 
    } 
} 

ХЭЗ [АУН] $ Тип Test2.java

import java.util.Date; 

public class Test2 { 
    public static void main(String args[]) { 
     Date d1 = new Date(); 
     System.out.println(d1); 
     // for (int k = 0;k < 1;k++) { 
     for (int i = 0;i < Integer.MAX_VALUE;i++) { 
      for (int j = 0;j < Integer.MAX_VALUE;j++) { 

      } 
     } 
     // } 
     Date d2 = new Date(); 
     System.out.println(d2.getTime() - d1.getTime()); 
    } 
} 

Затем я составил следующее:

HEZ[AUN]$javac Test.java 
HEZ[AUN]$javac Test2.java 
HEZ[AUN]$java "Test"  
Tue Feb 21 18:04:57 GMT+07:00 2012 
3574 
HEZ[AUN]$java "Test2" 
Tue Feb 21 18:05:03 GMT+07:00 2012 
282 

Из вышесказанного, я не понимаю, почему код, который имеет дополнительную линию для цикла «за 1 раз» занимает больше времени по сравнению с кодом «без для»

Должен ли я изменить некоторые системы OpenVMS параметр?

ответ

4

Производительность Java сложная и тонкая.

Ваш тест не достаточно удалён, чтобы рассказать вам что-либо вообще.

Вы должны пойти купить и читать книги «Java Performance» от Charlie Hunt и «Java Performance Tuning» Джек Ширази

Там так много, что случилось с вашим примером, что я не думаю, что это стоит попробовать почини это. Небольшое знание в этой области - очень опасная вещь.