【发布时间】:2011-11-04 14:07:15
【问题描述】:
当我通过 Eclipse 执行下面的简单代码示例时(版本 3.5.2,在 Ubuntu 10.04 上,java 版本“1.6.0_20” OpenJDK 运行时环境 (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.04.2) OpenJDK Server VM(build 19.0-b09,混合模式)),大约需要 10 秒。当我从我的 shell(使用相同的优先级和 java 版本)执行它时,大约需要 40 秒。
for (int i = 0; i<1000*1000; i++) {
System.out.println(Math.cos(i));
}
我还尝试了其他程序,它们的运行时间和输出量各不相同:每个程序在 shell 中都慢得多。这与执行顺序无关。 Eclipse 中的最小百分比差异为 85 秒,而 shell 中输出很少的程序为 145 秒。
什么原因?
【问题讨论】:
-
我认为 Eclipse 使用的是已经运行的 JVM,而当您手动运行 java 时,它必须启动一个。
-
您确定您的控制台调用的 JDK 是 OpenJDK Server VM(内部版本 19.0-b09,混合模式)吗?尝试在 Eclipse 打开的情况下运行 shell 版本并运行一些空闲测试,以查看已经启动 JVM 的事实是否会影响 @Jeremy Heiler 明智地建议的行为。
-
可能是打印到控制台的速度很慢,特别是如果您使用的是 GNOME 3 或 Unity 等合成桌面?尝试将输出重定向到文件,然后重新测试两者。
-
请参阅stackoverflow.com/questions/7124489/… 了解非常相似的问题和可能的答案。
-
哈哈@Hircus,一种行为,多种可能性;)
标签: eclipse shell ubuntu console runtime