【问题标题】:How to speed up IntelliJ on Mac OS X 10.9如何在 Mac OS X 10.9 上加速 IntelliJ
【发布时间】:2014-02-26 13:07:19
【问题描述】:

我在设备齐全的机器(7i 处理器、16GB RAM、64 位等)上使用 Mac OSX 10.9 和 Intellij Idea 13。我的事情运作良好;但是,在我看来,Intellij 的运行速度很慢(启动大约需要 5 分钟,编译系统输出打印行类等几乎需要整整 2 分钟)。作为参考,我浏览了许多帖子并找到了以下配置。我的问题是这个。有没有其他人使用类似的设置并让它运行得更快?如果是这样,您对环境进行了哪些修改以加快速度。提前感谢您的帮助。

Java 版本:

从 jdk1.6 切换到 jdk1.7

idea.vmoptions:

-ea
-server
-Xms1g
-Xmx1g
-Xss16m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseConcMarkSweepGC
-XX:LargePageSizeInBytes=256m
-XX:ReservedCodeCacheSize=96m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
-XX:ParallelGCThreads=8
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+PrintGCDetails
-XX:+PrintFlagsFinal
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:CMSInitiatingOccupancyFraction=60
-XX:+CMSClassUnloadingEnabled
-XX:+CMSParallelRemarkEnabled
-XX:+UseAdaptiveGCBoundary
-XX:+UseSplitVerifier
-XX:CompileThreshold=10000
-XX:+UseCompressedStrings
-XX:+OptimizeStringConcat
-XX:+UseStringCache
-XX:+UseFastAccessorMethods
-XX:+UnlockDiagnosticVMOptions

info.plist(修改):

<key>LSArchitecturePriority</key>
<array>
  <string>x86_64</string>
</array>

  <key>JVMVersion</key>
  <string>1.7*</string>

【问题讨论】:

  • 您是否尝试过使用其他 IDE?结果是一样的吗?五分钟启动是荒谬的,即使对于 Mac 来说也是如此。你有 SSD 吗?
  • 您电脑的哪个关键系统让您慢了下来?是 CPU 还是硬盘?
  • 如果您有良好的 RAM,请尝试使用 -Xms6g -Xmx6g。
  • 你的一些参数没有用——比如-XX:+PrintGCDetails、UseSplitVerifier。我会从 vanilla vmoptions 文件开始,只增加内存和 MaxPermSize。
  • 请检查插件,也许您启用的功能超出了您的实际需要

标签: java macos intellij-idea


【解决方案1】:

这是独家新闻。有很多关于改变堆大小、垃圾收集器等等的东西。它可能不是您的问题的根本原因。请务必了解您在 vmoptions 文件中设置的内容,因为不再支持某些建议。我和 IntelliJ 的人一起工作,来回处理日志文件,什么不是,归结为这一点。检查您的防病毒软件。调整了我的杀毒后,下面的设置让 IntelliJ 尖叫。请注意,这是我个人问题的原因;所以一定要检查你的日志文件,因为那是我开始寻找答案的地方。

JDK 1.6

.vmoptions 运行在 /Application/IntelliJ13/bin:

-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=96m
-XX:+UseCompressedOops

*请注意,您不需要分配大量系统资源。如果您正确设置系统,则不需要。

idea.plist:

<key>LSArchitecturePriority</key>
<array>
  <string>x86_64</string>
  <string>i386</string>
</array>

<key>JVMVersion</key>
<string>1.6*</string>

我知道这很简单,但很有效。

【讨论】:

    【解决方案2】:

    我强烈建议您不要使用所有这些 VM 选项(尤其是那些控制垃圾收集器的选项),除非您实际测量它们会提高性能。 请报告此处描述的可重现性能问题https://intellij-support.jetbrains.com/entries/29983118-Reporting-performance-problems

    【讨论】:

    • 您建议使用哪些?缓慢的性能又回来了,所以我开始再次尝试这个。我已经与一些具有类似设置的人交谈过,似乎他们往往有同样的问题并且现在正在使用他们的电脑。我真的很想让这个在我的mac上工作。这是我现在使用的:
    • -server -Xms1g -Xmx1g -Xss16m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:LargePageSizeInBytes=512m -XX:ReservedCodeCacheSize=512m -XX:ParallelGCThreads= 8 -XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UnlockDiagnosticVMOptions -agentlib:yjpagent=delay=10000
    • 正如我上面写的,我建议不要设置任何特殊的 VM 选项,除了合适的 -Xmx 和必需的 -XX:MaxPermSize & -Xss。
    • 我问的原因是因为这样做是行不通的。我希望你有一个具体的例子来说明这个设置的工作原理。感谢您的帮助;但是,我开始认为这种配置可能与慢启动无关,而是 intellij 中嵌入的另一个依赖项。我会弄清楚并在这里发布我的发现。
    猜你喜欢
    • 2014-02-12
    • 1970-01-01
    • 2014-04-29
    • 2013-11-02
    • 2013-11-11
    • 2013-11-17
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多