У меня есть это результаты проверки скорости, которую я написал в Java:Java JRE против GCJ
Java
real 0m20.626s
user 0m20.257s
sys 0m0.244s
GCJ
real 3m10.567s
user 3m5.168s
sys 0m0.676s
Итак, какова цель GCJ тогда? С этими результатами я уверен, что не собираюсь компилировать его с помощью GCJ!
Я тестировал это на Linux, результаты в Windows могут быть лучше, чем это?
Это был код из приложения:
public static void main(String[] args) {
String str = "";
System.out.println("Start!!!");
for (long i = 0; i < 5000000L; i++) {
Math.sqrt((double) i);
Math.pow((double) i, 2.56);
long j = i * 745L;
String string = new String(String.valueOf(i));
string = string.concat(" kaka pipi"); // "Kaka pipi" is a kind of childly call in Dutch.
string = new String(string.toUpperCase());
if (i % 300 == 0) {
str = "";
} else {
str += Long.toHexString(i);
}
}
System.out.println("Stop!!!");
}
Я скомпилированные с GCJ так:
gcj -c -g -O Main.java
gcj --main=speedtest.Main -o Exec Main.o
И побежал так:
time ./Exec // For GCJ
time java -jar SpeedTest.jar // For Java
Почему вы скомпилируете с отладкой (-g)? –
@Matthew: Я нашел это на форуме. Думаю, это ничего не меняет для его исполнения. –
Было бы здорово, если бы проект был перезапущен и был нацелен на производительность, например [jet] (http://mindprod.com/jgloss/jet.html). Потому что язык Java я замечательный, но мне не нравится необходимость виртуальной машины. – Youarefunny