Dav*_*Far 7 eclipse shell console ubuntu runtime
当我通过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服务器VM(内置19.0-b09,混合模式)),大约需要10秒钟.当我从我的shell执行它(使用相同的优先级和java版本)时,大约需要40秒.
for (int i = 0; i<1000*1000; i++) {
System.out.println(Math.cos(i));
}
Run Code Online (Sandbox Code Playgroud)
我还尝试了其他程序,在运行时和输出量方面各不相同:每个程序在shell中都要慢得多.这与执行顺序无关.对于输出很少的程序,Eclipse中的最小百分比差异为85秒,而shell为145秒.
什么原因?
nos*_*nos 19
这是因为你正在为你的终端计时.在显示/滚动文本时,某些终端只是慢速.并且你的终端是行缓冲的,而eclipse控制台可能有更多的缓冲 - 导致你的程序必须在它打印的每一行之后等待你的终端.
尝试将程序的输出重定向到文件或/ dev/null,并为其计时.
在我的系统上,这与你的小循环有点不同:
$ time java T --snip - 1M lines of output-- real 0m24.746s user 0m2.403s sys 0m1.597s $ time java T >output real 0m5.172s user 0m2.800s sys 0m2.707s
由于到目前为止您的程序花在输出上的时间最多,因此执行的总时间很大程度上取决于系统调用所花费的时间.因此将它放在常规控制台上似乎比eclipse中的输出窗口慢得多,但这并不意味着,您的程序本身执行得更快.
只需将所有输出都指向一个文件,您就不会再看到太多差异了.
归档时间: |
|
查看次数: |
3392 次 |
最近记录: |