Производительность Java на OpenVMS - PullRequest
0 голосов
/ 21 февраля 2012

Я пытался проверить производительность 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 Ответ

4 голосов
/ 21 февраля 2012

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

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

Вам следует пойти и купить книги Чарли Ханта "Производительность Java" и "Настройка производительности Java" Джек Ширази.

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

...