与命令提示符相比,Eclipse中的程序执行速度非常慢

时间:2012-10-09 14:27:54

标签: java eclipse

我创建了一个Java程序,它从本地系统读取加密文件并进行一些处理。实际上我有20个文件要读取,所以我使用了线程机制来加速程序的执行。

当我在Eclipse中运行程序时,完成执行需要30多分钟,而如果我创建一个可运行的jar并使用命令提示符执行程序,则只需不到一分钟。

为什么在Eclipse中运行程序比在命令提示符下运行它们需要更多时间?

5 个答案:

答案 0 :(得分:6)

与命令行的常规System.out相比,Eclipse的Console视图捕获stdout的速度非常慢。每当程序中发生大量打印时,预计Eclipse中的程序运行速度会明显变慢。

但是无论如何,除非你正在编写一个旨在通过Unix管道与其他程序集成的程序,否则你应该尽量减少打印,因为它甚至会在命令行中杀死性能。

答案 1 :(得分:1)

有一些典型的错误:

  • 也许您正在调试模式下执行程序。

    尝试使用Run(在绿色圆圈内播放符号)而不是Debug(绿色错误)

  • 也许您正在使用不同的JVM执行程序

    查看Project Properties->Java compilerWindow->Preferences->Java->CompilerWindow->Preferences->Java->Installed JREs

  • Eclipse JDT的Java控制台的输出和输入交互在性能上与标准控制台不同。

答案 2 :(得分:0)

确保在Eclipse中使用Run操作,而不是Debug,因为后者确实具有可测量的差异,尤其是在使用条件断点时。

但是,我记得使用Debug会产生较小的差异。

答案 3 :(得分:0)

我刚为你做了一个实验,并没有看到如此显着的差异。 我创建了计算sin() 100000000次的课程。 这个程序在eclipse下运行约15秒,在命令提示符下运行约14秒。

所以,这就是我能看到的系统缓慢的原因:

  1. 确保您没有在调试下运行。使用“运行”选项,而不是“调试”。
  2. 确保在eclipse下没有一些覆盖/监控开发工具。例如YourKit,Emma等。
  3. 确保您的程序不会对控制台产生重要的打印效果。
  4. 在eclipse下运行时检查是否有足够的堆内存

答案 4 :(得分:0)

将jdk 6更改为jdk 7对我来说非常合适。 Window-> Preferences-> Java-> Installed JREs