3

我目前正在使用 IntelliJ 10.5.4 跟踪一个相对较小的 Scala 程序(Apache 的 Kafka),同时在另一个项目中运行其他几个 Java 应用程序。虽然 Java 应用程序运行良好,但 Scala 调试速度却非常慢,一个简单的“Make Project”将轻松花费 2 分钟,即使是基本的光标键击也需要一秒钟才能反映在屏幕上。

我之前使用过 IntelliJ,在多个项目下同时运行多达 6 个应用程序,它完全没有任何问题。硬件也不是问题,这一切都在 Java 1.6.0_31 下运行在最近的 Macbook Pro(256GB SSD、8Gb RAM、四核 i7)上。

在 IntelliJ 下调试时,是否有任何提示/技巧可以使 Scala 表现得体面?或者,人们用什么来进行 Scala 调试?

4

4 回答 4

4

使用最新的 Scala 插件尝试最新的 Idea 11 EAP。它对我有用。

于 2012-05-10T03:53:19.843 回答
2

tl;博士

回复:编译时间,你启用了 FSC吗?这极大地帮助了 Scala 编译时间。

回复:整体缓慢,您可能需要调整 JVM 设置。Scala 可能会占用更多内存,因此您可能必须增加您的-Xmx价值以减少垃圾收集的时间。或者降低它,如果它太高的话。或更改垃圾收集器。供参考,这是我的:

<key>VMOptions</key>
<string>-ea -Xverify:none -Xbootclasspath/a:../lib/boot.jar -XX:+UseConcMarkSweepGC </string>
<key>VMOptions.i386</key>
<string>-Xms128m -Xmx512m -XX:MaxPermSize=250m -XX:ReservedCodeCacheSize=64m</string>
<key>VMOptions.x86_64</key>
<string>-Xms128m -Xmx800m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=64m -XX:+UseCompressedOops</string>

其实想通了

您可能需要进行一些分析才能找出性能问题的真正含义。最简单的方法是打开活动监视器以查看内存是否低、CPU 利用率高或磁盘活动是否高。这至少会给你一个关于发生了什么的线索。你有一个 SSD,所以磁盘 I/O 可能不是问题。

您可能需要分析 IDEA 本身,例如使用YourKit Java Profiler运行它。这可能会告诉您一些有趣的事情,例如 IDEA 是否花费了过多的时间进行垃圾收集。

不过,总的来说,Scala 似乎比 IntelliJ 上的 Java 更占用内存。有可能是你-Xmx设置的太低了,导致垃圾回收过多。或者它可能设置得太高,所以当它进行垃圾收集时,你会在应用程序中暂停。更改您使用的收集器可能会对此有所帮助,但是对于所有收集器,都有一个收益递减点,设置-Xmx太高会导致性能问题。

于 2012-05-10T13:58:42.137 回答
1

我发现我不小心在 List 的方法之一中设置了断点。它在调试 scala 项目时使 intellij 超级慢,但是当我取消断点时,intellij 再次变得正常。

点击ctrl+shift+F8可以找到断点列表。

于 2013-02-28T08:12:26.320 回答
0

从 2.0.1 开始,带有http://scala-ide.org/download/current.html的Eclipse对我来说运行良好。

我的东西目前是基于 maven 的,项目结合了 Java 和 Scala。我可以毫无问题地跨语言进行调试。

于 2012-05-10T07:00:29.067 回答