Speedup IntelliJ-Idea
我正在使用intelliJ进行Scala开发并且上周获得了8 GB的新RAM,所以我想:时间使用它。我检查了我的任务管理器,发现了使用~250mb的intelliJ。从eclipse我知道调整JVM选项对提高速度有很大帮助,所以我用谷歌搜索...
并为OS X找到了这个
我无法立即找到JVM选项,所以我开始调整Xmx。在1 GB时,我意识到它不再启动了。我检查了intelliJ java版本,发现它已经过时了,32位。
因此,为了使用您当前的JDK和64位,您必须将链接更改为:
1 | IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe |
至
1 | IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT |
并调整"开始"
蝙蝠现在寻找
我当前的VM选项,位于
1 | ...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions |
是
1 2 3 4 5 6 7 8 9 | -Xms512m -Xmx1024m -XX:MaxPermSize=512m -ea -server -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:+UnlockExperimentalVMOptions -XX:+UseParallelGC |
您可以使用
the accepted choice for desktop apps,
but I have changed to the throughput
collector recently. because with a
fast machine and a small enough heap,
you have quick pauses, more throughput
and no issues with fragmentation
(ijuma. #scala)
变化:
1 2 3 4 5 | -XX:+UseConcMarkSweepGC //removed // removed, because not needed with the lastest JVM. -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:+UseCompressedOops |
我现在会坚持这些选择。我真的很想知道你的经历。
哪种选择最适合您?
如何通过
顺便说一句,这是调整intelliJ的另一个链接。基本上它在p.20 / 21上说关闭Windows恢复和系统目录的防病毒。
另一种加速intelliJ的方法是将intellij系统文件夹放在ramdrive上(感谢OlegYch | h)。
1 2 | from idea.properties idea.system.path=${idea.home}/.IntelliJIdea/system |
请参阅Win 7 64位RAM驱动器的超级用户或此超级用户。
1 GB对我来说似乎没问题。
朋友给我的另一个提示是从防病毒软件中排除项目目录(扫描访问时)
调整Eclipse有类似的帖子:
- Eclipse Helios 3.6
- Eclipse Juno 4.2
- 指定JVM以启动Eclipse
这个组合对我在小牛队中运行的Intellij13很有用:
2017年7月18日更新:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # custom IntelliJ IDEA VM options -ea -server -Xms2G -Xmx4096M -Xss2m -XX:MaxMetaspaceSize=2G -XX:ReservedCodeCacheSize=1G -XX:MetaspaceSize=512m -XX:+UseConcMarkSweepGC -XX:+DoEscapeAnalysis -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+UnlockExperimentalVMOptions -Djava.net.preferIPv4Stack=true -Dsun.io.useCanonCaches=false -XX:LargePageSizeInBytes=256m -XX:+UseCodeCacheFlushing -XX:ParallelGCThreads=8 -XX:+DisableExplicitGC -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintFlagsFinal -XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseAdaptiveGCBoundary -XX:+UseSplitVerifier -XX:CompileThreshold=10000 -XX:+OptimizeStringConcat -XX:+UseStringCache -XX:+UseFastAccessorMethods -XX:+UnlockDiagnosticVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:+UseCompressedOops -XX:-OmitStackTraceInFastThrow -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine |
我将此设置更新为https://github.com/adben/config/blob/master/idea64.vmoptions
对我来说,切换到SSD驱动器可以提高性能(特别是对于大型项目)。
关于:
How do I hide this cmd window while running intelliJ through the .bat?
同时使用'start'命令和javaw.exe,如果你有:
1 2 3 | SET JAVA_EXE=%IDEA_JDK%\jre\bin\java.exe ... "%JAVA_EXE%" %JVM_ARGS% -cp"%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %* |
将其更改为:
1 2 3 | SET JAVA_EXE=%IDEA_JDK%\jre\bin\javaw.exe ... start"Intellij IDEA" /b"%JAVA_EXE%" %JVM_ARGS% -cp"%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %* |
前段时间我一直在寻找加快项目编译速度的方法,结果就是结果。这不适用于IntelliJ IDEA本身,但在(重新)构建大型项目时会有很多帮助,我想,它也适用于任何其他IDE。另外,我描述了Linux方法,但我确信Windows拥有自己的RAM磁盘实现。
加速编译的最简单方法是将编译输出移动到RAM磁盘。
RAM磁盘设置
打开fstab
1 | $ sudo gedit /etc/fstab |
(而不是
设置RAM磁盘挂载点
我在我的系统中的几个地方使用RAM磁盘,其中一个是
1 | tmpfs /var/tmp tmpfs defaults 0 0 |
在这种情况下,你的文件系统大小不会受限制,但没关系,我现在的
1 | tmpfs /var/tmp tmpfs defaults,size=512M 0 0 |
项目设置
在IntelliJ IDEA中,打开项目结构(默认为
1 | /tmp/projectName/out |
(我已经添加了
然后,转到模块,在所有模块中转到路径并选择"继承项目编译输出路径",或者,如果要使用自定义编译输出路径,请按照您的方式修改"输出路径"和"测试输出路径"它之前是项目编译器输出。
总而言之,伙计们!
附:一些数字:我在不同情况下当前项目编译的时间(大约):
1 2 3 | HDD: 80s SSD: 30s SSD+RAM: 20s |
P.P.S.如果您使用SSD磁盘,除了编译加速,您将减少磁盘上的写入操作,因此它也将帮助您的SSD永远幸福地生活;)
您可以为IntelliJ做的最有用的事情是为磁盘缓存提供大量可用内存。 IntelliJ在缓存文件中保存了很多处理工作。如果你有足够的可用内存,这很有效,但如果你的磁盘缓存有限,你会看到常规的,持久的暂停。
我建议
我还使用文件的本地副本来最小化文件访问延迟。
顺便说一句:对于我所在的项目,我注意到使用24 GB的机器和48 GB的机器之间的区别,即使最大堆设置为2 GB;)
我做了一些实验,发现为了减少GC暂停,以下组合效果最好:-XX:+ UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB = 50。
我也不会让堆太大,512甚至更小对我来说都没问题。否则,当它变满时,GC必须全部耗尽,这需要一些时间。
不知道为什么还没有提到它 - 你可以启用
我有一个相当大的代码库(AOSP源代码),所以由于后台文件同步导致的HD活动很烦人...
你可以在这里找到好的建议。例如,关闭"关闭同步文件"功能后,从IDEA切换到另一个应用程序的速度显着提高。
http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | -server -Xms2g -Xmx2g -XX:NewRatio=3 -Xss16m -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=4 -XX:ReservedCodeCacheSize=240m -XX:+AlwaysPreTouch -XX:+TieredCompilation -XX:+UseCompressedOops -XX:SoftRefLRUPolicyMSPerMB=50 -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djsse.enableSNIExtension=false -ea |
他们通过使用上述配置改善了大型项目的性能,并且也为我们的项目提供了完美的工作。最后,我禁用了我不会使用的所有插件,这也改进了这些。
参考:https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea
您可以使用intellij的优化器插件:
https://zeroturnaround.com/free/optimizer-for-intellij-idea/
使用该插件,您可以:
- 自动调整虚拟机选项
- 禁用类验证
- 清理系统缓存
- 配置外部构建工具
- 验证最新的Oracle JDK
- 跳过构建和重新部署
在媒体上写了一篇关于这个主题的小文章:https://medium.com/@sergio.igwt/boosting-performance-of-intellij-idea-and-the-rest-of-jetbrains-ides-cd34952bb978
我使用了这种组合,它在我的环境中运行良好
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | -server -Xms2048m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=8 -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+CMSScavengeBeforeRemark -XX:+UseCMSInitiatingOccupancyOnly -XX:ReservedCodeCacheSize=64m -XX:-TraceClassUnloading -ea -Dsun.io.useCanonCaches=false |