从eclipse构建时,为什么java程序比从命令行构建时慢?

时间:2011-11-15 20:59:19

标签: java eclipse performance command-line

我在循环中做了一些简单的函数调用和字符串操作,java程序在命令行下比从eclipse启动(Run as ...)运行得快得多......

打印6行输出,每行约120个字符。 每条线的穿孔结果范围为50ms至300ms。

总时间略多于2秒。

"慢得多"这意味着,对于某些操作(函数调用),我看到20ms vs 300 ms。

在控制台上运行一次后,日食的速度赶上了!

在eclipse中更改并构建代码后,如果我不用命令行重建它,CL的速度就会下降。

看起来只有CL ...

生成一些热点信息

4 个答案:

答案 0 :(得分:1)

也许只是eclipse控制台比你的操作系统控制台慢? 此外,在大约2秒的总运行时间内,您的基准可能只是超级不准确。

答案 1 :(得分:0)

很可能罪魁祸首是Eclipse加载后的内存使用情况,Eclipse可能还会对可执行文件执行更多操作,例如交换类加载器或启动java调试器。

我认为最可能的答案很简单:Eclipse使用大量资源,尤其是内存,并且会使系统挨饿,从而导致交换,并降低性能。 YMMV,并且不能保证我没有看到你的系统,这只是我最好的猜测。

答案 2 :(得分:0)

我同意Eclipse在运行应用程序和打印控制台时正在做的其他评论。

Eclipse有自己的编译器(通常称为Eclipse JDT),它支持增量编译。由Eclipse编译的二进制文件可能没有经过优化,因为它是由javac编译的。

这两个编译器有不同的用途,JDT主要使Eclipse能够提供最先进的重构和自动完成,而javac在进行优化时花了很多精力。

答案 3 :(得分:-1)

我想说可以理解的是,应用程序运行速度较慢,所有Eclipse包装都在下面。 Eclipse作为一个孩子生成了JVM进程,我相信它仍然可以做自己的魔术'。