Производительность Java на OpenVMS
Я пытался проверить производительность Java на OpenVMS (Itanium, OS 8.3). Я создал несколько примеров классов для тестирования производительности, как показано ниже
HEZ[AUN]$ тип 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());
}
}
HEZ[AUN]$ тип 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?
1 ответ
Производительность Java сложна и тонка.
Ваш тест недостаточно сложен, чтобы рассказать вам что-нибудь.
Вы должны пойти и купить книги Чарли Ханта "Производительность Java" и "Настройка производительности Java" Джека Ширази.
В вашем примере так много неправильного, что я не думаю, что стоит пытаться это исправить. Немного знаний в этой области - очень опасная вещь.