Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与命令提示符相比,Eclipse中的程序执行速度非常慢_Java_Eclipse - Fatal编程技术网

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

Java 与命令提示符相比,Eclipse中的程序执行速度非常慢,java,eclipse,Java,Eclipse,我创建了一个Java程序,它从本地系统读取加密文件并进行一些处理。实际上我有20个文件要读,所以我使用线程机制来加速程序的执行 当我在Eclipse中运行程序时,完成执行需要30分钟以上,而如果我制作一个可运行的jar并使用命令提示符执行程序,则需要不到一分钟的时间 为什么在Eclipse中运行程序要比在命令提示符下运行程序花费更多的时间?请确保在Eclipse中使用Run操作,而不是Debug,因为后者确实有明显的区别,特别是在使用条件断点的情况下 但是,我记得在使用调试时产生了不太显著的差异

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

当我在Eclipse中运行程序时,完成执行需要30分钟以上,而如果我制作一个可运行的jar并使用命令提示符执行程序,则需要不到一分钟的时间


为什么在Eclipse中运行程序要比在命令提示符下运行程序花费更多的时间?

请确保在Eclipse中使用Run操作,而不是Debug,因为后者确实有明显的区别,特别是在使用条件断点的情况下


但是,我记得在使用调试时产生了不太显著的差异。

我刚刚为您做了一个实验,没有看到如此显著的差异。 我创建了一个类,可以计算
sin()
100000000次。
该程序在eclipse下运行约15秒,通过命令提示符运行约14秒

因此,以下是我在脑海中看到的系统运行缓慢的原因:

  • 确保您没有在调试下运行。使用运行选项,而不是调试
  • 确保在eclipse下没有一些覆盖/监视开发人员工具。比如你的工具包,艾玛等等
  • 确保您的程序不会向控制台生成重要的打印
  • 检查在eclipse下运行时是否有足够的堆内存

  • 有一些典型的错误:

    • 可能您正在调试模式下执行程序

      尝试使用Run(绿色圆圈内的play符号)而不是Debug(绿色bug)

    • 可能您正在使用不同的JVM执行程序

      查看
      projectproperties->Java编译器
      Window->Preferences->Java->compiler
      Window->Preferences->Java->Installed JREs

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


    Eclipse的控制台视图捕获
    系统.out
    与命令行的常规
    标准输出相比,速度非常慢。每当程序中发生大量打印时,可以预期程序在Eclipse中的运行速度会大大降低


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

    将jdk 6更改为jdk 7对我来说非常有效。
    Window->Preferences->Java->Installed JRE

    您是否有机会在
    系统中打印大量内容。out
    ?因为这可以立即解释你的观察结果。@MarkoTopolnik:是的,我使用了这个系统。根据程序逻辑,我打印了5-10k次。这是个问题吗?是的,是的。删除打印输出,您将立即看到加速。Eclipse的控制台视图比命令行中的stdout要慢得多。这不是对您的问题的回答,但仅供参考如果您想从命令行运行Eclipse程序,您可以将cd刻录到Eclipse项目的
    bin/
    目录,并随时运行
    java package.path.Classname
    。构建一个可执行jar不是必需的。@dimo414那么类路径呢?我只使用运行操作,不使用调试机制。但我仍然看到,与命令提示符相比,处理过程有很大的延迟。是的,commenting System.out加快了执行过程。谢谢