我正在使用intelliJ进行Scala开发并且上周获得了 8 GB 的新RAM,所以我想:时间使用它。我检查了我的任务管理器,发现使用 ~250mb 的intelliJ。从eclipse我知道调整JVM选项有助于提高速度,所以我用Google搜索...
找到this one for 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:+UseParallelGC
,您可以使用-XX:+UseConcMarkSweepGC
,即
桌面应用程序的可接受选择, 但我已经改变了吞吐量 收藏家最近。因为有了 快速的机器和足够小的堆, 你有快速暂停,更多的吞吐量 没有碎片问题 (ijuma。#sclala)
的变化:
-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
我现在坚持这些选择。我真的很想知道你的经历。
哪种选择最适合您?
如何通过.bat
运行intelliJ时隐藏此cmd窗口? :)
顺便说一下,这是tuning intelliJ的另一个链接。基本上它在 p.20 / 21 上说要关闭系统目录的Windows还原和防病毒软件。
加速intelliJ的另一种方法是将intellij系统文件夹放在 ramdrive 上(感谢OlegYch | h)。
from idea.properties
idea.system.path=${idea.home}/.IntelliJIdea/system
请参阅Superuser for Win 7 64bit RAM Drive或this one。 1 GB对我来说似乎没问题。
朋友给我的另一个提示是从防病毒软件中排除项目目录(扫描访问时)
有关于调整Eclipse的类似帖子:
答案 0 :(得分:31)
这种组合对我在小牛队中运行的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
答案 1 :(得分:28)
对我来说,切换到SSD驱动器可以提高性能(特别是对于大型项目)。
答案 2 :(得分:20)
关于:
如何通过.bat?
运行intelliJ时隐藏此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% %*
答案 3 :(得分:19)
您可以为IntelliJ做的最有用的事情是为磁盘缓存提供大量可用内存。 IntelliJ在缓存文件中保存了很多处理工作。如果你有足够的可用内存,这种方法很有效,但如果你的磁盘缓存有限,你会看到定期的,持久的暂停。
我建议-XX:+UseConcMarkSweepGC
而不是G1
。
我还使用文件的本地副本来最小化文件访问延迟。
BTW :对于我所在的项目,我注意到在使用24 GB的机器和使用48 GB的机器上工作之间的区别,即使最大堆设置为2 GB;)< / p>
答案 4 :(得分:19)
前段时间我一直在寻找加速项目编译的方法,结果就是这样。这不适用于IntelliJ IDEA本身,但在(重新)构建大型项目时会有很多帮助,我想,它也适用于任何其他IDE。此外,我描述了Linux方法,但我确信Windows拥有自己的RAM磁盘实现。
加速编译的最简单方法是将编译输出移动到RAM磁盘。
$ sudo gedit /etc/fstab
(而不是gedit
,您可以使用vi
或任何您喜欢的内容)
我在系统的几个地方使用RAM磁盘,其中一个是/tmp
,所以我只是将编译输出放在那里:
tmpfs /var/tmp tmpfs defaults 0 0
在这种情况下,您的文件系统大小不会受限制,但没关系,我的/tmp
大小现在是73MB。但如果你担心RAM磁盘的大小会变得太大 - 你可以限制它的大小,例如:
tmpfs /var/tmp tmpfs defaults,size=512M 0 0
在IntelliJ IDEA中,打开项目结构(默认为Ctrl+Alt+Shift+S
),然后转到项目 - &#39;项目编译器输出&#39;并将其移动到RAM磁盘安装点:
/tmp/projectName/out
(我已经添加了projectName
文件夹,以便在我需要到达那里时轻松找到它,或者同时使用多个项目)
然后,转到Modules,在所有模块中转到Paths并选择&#39; Inherit project compile output path&#39;或者,如果要使用自定义编译输出路径,请修改&#39;输出路径&#39;和&#39;测试输出路径&#39;你之前用它来编译编译器输出的方式。
总而言之,伙计们!
P.S。一些数字:在不同情况下我当前项目编译的时间(大约):
HDD: 80s
SSD: 30s
SSD+RAM: 20s
P.P.S。如果您使用SSD磁盘,除了编译加速,您将减少磁盘上的写入操作,因此它也将帮助您的SSD永远幸福地生活;)
答案 5 :(得分:4)
我做了一些实验,发现为了减少GC暂停,以下组合效果最好:-XX:+ UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB = 50.
我也不会让堆太大,512甚至更小也适合我。否则,当它变满时,GC必须全部耗尽,这需要一些时间。
答案 6 :(得分:2)
你可以在这里找到好的建议。例如,在关闭“关闭同步文件”功能后,从IDEA切换到另一个应用程序的速度显着提高。
http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html
答案 7 :(得分:2)
不确定为什么还没有提及 - 您可以启用Power Save mode
,这会关闭许多 IJ 后台活动,包括Files Synchronization
。有些文章说可以在项目结构选项中禁用Files Sync(比如@ OJ278的回答文章),但我无法在 IJ 14 中找到此选项,但是{{1似乎禁用它。
我有一个非常大的代码库( AOSP 源代码),因此后台文件同步造成的HD活动很烦人......
答案 8 :(得分:1)
您可以使用intellij的优化器插件:
https://zeroturnaround.com/free/optimizer-for-intellij-idea/
使用该插件,您可以:
答案 9 :(得分:1)
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
答案 10 :(得分:0)
我使用了这种组合,它在我的环境中正常工作
-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
答案 11 :(得分:0)