我用Java编写的速度测试得到了这个结果:
Java
real 0m20.626s
user 0m20.257s
sys 0m0.244s
GCJ
real 3m10.567s
user 3m5.168s
sys 0m0.676s
Run Code Online (Sandbox Code Playgroud)
那么,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 == …Run Code Online (Sandbox Code Playgroud) 我意识到字节码与本机代码(可移植性)的好处.
但是说你总是知道你的代码将在x86架构上运行,为什么不编译为x86并获得性能优势呢?
请注意,我假设本机代码编译有性能提升.有些人回答说实际上可能没有收获对我来说是个新闻.