加速IntelliJ-Idea

| 我正在使用intelliJ进行Scala开发,上周获得了8 GB的新RAM,所以我想:该使用它了。我检查了任务管理器,发现使用约250mb的intelliJ。从eclipse中我知道调整JVM选项对提高速度有很大帮助,所以我用谷歌搜索... 并为OS X找到了这个 我无法立即找到JVM选项,因此我开始调整Xmx。在1 GB时,我意识到它不再启动。我检查了intelliJ Java版本,发现它已经过时且为32位。 因此,为了使用当前的JDK和64位,您必须将链接更改为:
IntelliJ IDEA Community Edition 10.0.2\\bin\\idea.exe
IntelliJ IDEA Community Edition 10.0.2\\bin\\idea.BAT
并调整“开始于” 蝙蝠寻找
JDK_HOME
,现在使用64位。 我当前的VM选项,位于
...\\IntelliJ IDEA Community Edition 10.0.2\\bin\\idea.exe.vmoptions
-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
您可以使用
-XX:+UseConcMarkSweepGC
代替
-XX:+UseParallelGC
,   桌面应用程序的公认选择,   但是我改变了吞吐量   收藏家最近。因为用   快速的机器和足够小的堆,   您可以快速停顿,提高吞吐量   而且没有碎片的问题   (ijuma。#scala) 变化:
-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
    -XX:+UnlockExperimentalVMOptions
    -XX:+DoEscapeAnalysis
    -XX:+UseCompressedOops
我现在将坚持使用这些选项。我真的很想知道您的经验。 哪些选项最适合您? 在通过
.bat
运行智能时如何隐藏此cmd窗口? :) 顺便说一下,这是另一个用于调整智能的链接。基本上,它在p.20 / 21上说要为系统目录关闭Windows还原和防病毒功能。 加快intelIJ速度的另一种方法是将intellij系统文件夹放在ramdrive上(感谢OlegYch | h)。
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日更新:
# 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驱动器可以改善很多性能(尤其是对于大型项目)。     
关于:   在.bat中运行智能时,如何隐藏此cmd窗口? 一起使用\'start \'命令和javaw.exe,因此,如果您具有:
SET JAVA_EXE=%IDEA_JDK%\\jre\\bin\\java.exe
...
\"%JAVA_EXE%\" %JVM_ARGS% -cp \"%CLASS_PATH%\" %IDEA_MAIN_CLASS_NAME% %*
更改为:
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
$ sudo gedit /etc/fstab
(您可以使用
vi
或其他任何方式代替
gedit
) 设置RAM磁盘安装点 我在系统中的多个位置使用RAM磁盘,其中之一是
/tmp
,因此我将编译输出放在此处:
tmpfs /var/tmp tmpfs defaults 0 0
在这种情况下,您的文件系统大小将不受限制,但是没关系,我现在的16英寸大小为73MB。但是,如果您担心RAM磁盘的大小会太大-您可以限制它的大小,例如:
tmpfs /var/tmp tmpfs defaults,size=512M 0 0
项目设置 在IntelliJ IDEA中,打开项目结构(默认情况下为20),然后转到项目-\“项目编译器输出\”,并将其移至RAM磁盘安装点:
/tmp/projectName/out
(我已经添加了
projectName
文件夹,以便在需要到达该文件夹时轻松找到它,或者可以同时处理多个项目) 然后,转到“模块”,然后在所有模块中转到“路径”,然后选择“继承项目编译输出路径”,或者,如果要使用自定义编译输出路径,请修改“输出路径”和“测试输出路径” \'就是您之前对编译器输出进行投影的方式。 就是这样,伙计们! 附言一些数字:在不同情况下我当前项目编译的时间(大约):
HDD:     80s
SSD:     30s
SSD+RAM: 20s
P.P.S.如果您使用SSD磁盘,则除了可以提高编译速度之外,还可以减少磁盘上的写操作,因此也可以帮助您的SSD从此过上幸福的生活;)     
您可以为IntelliJ做的最有用的事情是拥有大量可用内存用于磁盘缓存。 IntelliJ将大量处理工作保存在缓存的文件中。如果您有足够的可用内存,那么此方法效果很好,但是如果磁盘缓存有限,则会出现定期的长时间停顿。 我建议
-XX:+UseConcMarkSweepGC
,而不是
G1
。 我还处理文件的本地副本,以最大程度地减少文件访问延迟。 顺便说一句:对于我从事的项目,我注意到在最大容量为2 GB的机器上使用24 GB的机器与48 GB的机器之间的区别;     
我做了一些实验,发现减少GC暂停可以最好地使用以下组合:
-XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50
。 我也不会使堆太大,对我来说512或更小。否则,当GC充满时,它必须走遍所有的过程,这需要一些时间。     
您可以在此处找到良好的提示。例如,关闭“关闭同步文件”功能后,从IDEA切换到另一个应用程序(反之亦然)的速度得到了显着提高。 http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html     
不知道为什么还没有提到它-您可以启用
Power Save mode
,它会关闭许多IJ后台活动,包括
Files Synchronization
。有些文章说可以在项目结构选项中禁用“文件同步”(例如@ OJ278回答的文章),但是我在IJ 14中找不到此选项,但是
Power Save mode
似乎禁用了它。 我有一个相当大的代码库(AOSP源代码),因此由于后台文件同步而导致的高清活动令人讨厌...     
您可以使用intellij的优化程序插件: https://zeroturnaround.com/free/optimizer-for-intellij-idea/ 使用该插件,您可以: 自动调整虚拟机选项 禁用班级验证 清理系统缓存 配置外部构建工具 验证最新的Oracle JDK 跳过构建并重新部署     
adben
提供的答案对改善我的机器的性能非常有帮助。尽管我在阅读Dzone文章后略微覆盖了它,
-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     
我使用了这种组合,在我的环境中效果很好
-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
    
在媒体上对此主题做了一些小文章:https://medium.com/@sergio.igwt/boosting-performance-of-intellij-idea-and-the-rest-of-jetbrains-ides-cd34952bb978     

要回复问题请先登录注册