我经常发现Eclipse的调试模式比依赖print语句或日志记录更有用。但是,我发现调试模式的性能似乎特别对文件I / O敏感。加载文件可能方式更慢(大约需要25倍),并且由于我的工作流程需要在我得到任何有趣的东西之前加载一个相当大的文件,这对我来说特别不方便。
这个问题有没有合理的解决方法?我实际上并不需要在文件加载过程中进行调试,所以是否有一种方法只能在过程中的某一点跳转到调试模式?
请注意,与this question不同,我不认为这是我的工作空间状态的问题。
答案 0 :(得分:2)
您可以使用eclipse的远程debuging功能挂钩正在运行的应用程序。您必须使用一些参数启动您的应用程序:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar yourapp.jar
然后在您的调试配置中,选择使用端口8001的远程Java应用程序。
pics here
更详细答案 1 :(得分:1)
你可能会以缓慢的方式进行IO(读取小块),而调试只是放大了,因为每个函数调用都有开销。
NetBeans有一种方法可以指定要分析的函数,所以我在Eclipse中寻找类似的选项,然后告诉它不要在java.*
命名空间或任何特定于IO的代码中分析任何内容如果这没有帮助。
我还要确保您正在快速读取文件(使用缓冲输入流,而不是使用Scanner
等)。 NIO中可能还有一些内容可以提供帮助,但我并不熟悉它。