我在循环中做了一些简单的函数调用和字符串操作,java程序在命令行下比从eclipse启动(Run as ...)运行得快得多......
打印6行输出,每行约120个字符。 每条线的穿孔结果范围为50ms至300ms。
总时间略多于2秒。
"慢得多"这意味着,对于某些操作(函数调用),我看到20ms vs 300 ms。
在控制台上运行一次后,日食的速度赶上了!
在eclipse中更改并构建代码后,如果我不用命令行重建它,CL的速度就会下降。
看起来只有CL ...
生成一些热点信息答案 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进程,我相信它仍然可以做自己的魔术'。