繁体   English   中英

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

[英]When built from eclipse, why is a java program slower than when built from command line?

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

打印了6行输出,每行大约120个字符。 每行是一个性能结果,范围从50ms到300ms。

总时间超过2秒。

这里的“慢得多”意味着,对于某些操作(函数调用),我看到的是20ms与300ms。

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

更改并在eclipse中构建代码后,如果不使用命令行重新构建,则CL的速度将下降。

似乎某些热点信息仅由CL生成...

也许仅仅是Eclipse控制台比您的操作系统控制台要慢? 另外,在大约2秒的总运行时间中,您的基准测试可能非常不准确。

造成这种情况的最可能原因是Eclipse加载导致的内存使用情况,并且Eclipse还可能对可执行文件进行其他操作,例如交换类加载器或启动Java调试器。

我想说的是,最可能的答案很简单:Eclipse使用了大量资源,尤其是内存,并且使系统有点饿,从而导致交换和性能下降。 YMMV,并且不能保证我不看您的系统就对,这只是我的最佳猜测。

我确实同意其他评论,即Eclipse在运行应用程序并打印控制台时正在执行某些操作。

Eclipse具有自己的编译器(通常称为Eclipse JDT),该编译器支持增量编译。 由于Eclipse编译的二进制文件是由javac编译的,因此未对它进行优化。

这两个编译器具有不同的用途,JDT主要使Eclipse提供最先进的重构和自动完成功能,而javac则花费大量精力进行优化。

我想说应用程序在所有Eclipse行李的下面运行会更慢,这是可以理解的。 Eclipse将JVM进程作为一个子进程产生,我敢肯定,它仍然具有自己的“魔力”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM