在使用IntelliJ 13 Ultimate Edition一周的过程中,它似乎真的很慢。
首先,整个IDE偶尔会停一秒钟左右。与12版本相比,Java编辑器的自动完成速度确实很慢。
除了使用Dracula主题外,我没有更改任何默认设置。
看来这不是我自己的问题。许多人建议将堆大小设置为大于默认值,或者清除缓存,但是我没有对这些建议进行检查或测试。我是否需要更改某些设置以改善新版本的性能?
在使用IntelliJ 13 Ultimate Edition一周的过程中,它似乎真的很慢。
首先,整个IDE偶尔会停一秒钟左右。与12版本相比,Java编辑器的自动完成速度确实很慢。
除了使用Dracula主题外,我没有更改任何默认设置。
看来这不是我自己的问题。许多人建议将堆大小设置为大于默认值,或者清除缓存,但是我没有对这些建议进行检查或测试。我是否需要更改某些设置以改善新版本的性能?
Answers:
从12升级后,我在IntelliJ 13中也遇到了速度慢的问题。对我有用的是编辑bin文件夹中的idea64.vmoptions并将最大堆设置为8 GB(原为512 MB),最大PermGen设置为至少1GB (原为300MB)。下面的示例:
-Xms128m
-Xmx8192m
-XX:MaxPermSize=1024m
重新启动后,速度要快得多。
对于Mac上的IntelliJ 2020可以追溯到2017年
/Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions
在Mac上,此文件位于以下路径中:
对于Mac上的IntelliJ 14或15
/Applications/IntelliJ IDEA 14.app/Contents/bin/idea.vmoptions
对于Mac上的IntelliJ 13
/Users/yourusername/Library/Preferences/IntelliJIdea13/idea.vmoptions
IntelliJ的更新程序(自2017年起)似乎回滚了此更改,因此您可能需要在更新后重新应用它。
在Ubuntu Linux上,此文件位于相对于安装目录的此路径中:
idea-IU-135.475/bin/idea64.vmoptions
对于2016.2:
~/.IdeaIC2016.2/idea64.vmoptions
在Windows 10(此处显示的社区版本)上,这些文件位于:
C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1.3\bin\idea64.exe.vmoptions
MaxPermSize
因为被忽略的Java 8
我注意到禁用许多插件确实有助于加快IntelliJ的速度。例如,我不开发Android应用程序。关闭与Android开发相关的插件可以加快加载时间,并使程序在我的计算机上运行更加流畅。
就我而言,GIT集成似乎使编辑器的速度慢到令人沮丧的13。
在键入文字甚至注释时,如果启用了GIT集成,则大约30个字符后,UI会冻结大约一秒钟。它通常不长,但是很烦人。
我正在使用GIT 1.7.8.0。在带有固态驱动器和12 gig ram以及具有8个CPU的intel I7的Windows 7 64上运行。我尝试了各种操作,例如更新idea64.exe.vmoptions以使用更多的内存,例如-Xmx2400m和-XX:MaxPermSize = 2400m,-XX:ParallelGCThreads = 6,但这并不能解决问题。
git存储库是1.3 gigs,包含65,000个文件。
我在新的git存储库中创建了一个新的“ grails”项目,没有任何问题。我在现有的大型git存储库中创建了一个新的grails项目,而intellij速度很慢。我通过打开项目设置对话框并删除git根来关闭git集成,问题消失了。
我尝试通过13个UI禁用所有的GIT后台操作,但是并没有什么不同。我还尝试了GIT内置模式和本机模式,但没有区别。
就我而言,解决方法似乎是在我需要之前禁用GIT集成,然后重新添加git根目录。如果其他人可以验证相同的问题,则我们可能会将其报告为问题。
在我的情况下,IntelliJ意外使用JDK / JRE 1.8导致大量性能下降。这似乎会严重影响渲染性能,并导致一些意外的崩溃和死锁。
即使是很小的〜3KLOC项目,这也将使IDE无法使用(操作延迟为1-2s)。
只需确保在运行intellij时正在使用JDK / JRE 1.7:
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67 intellij
(或与您的操作系统等效的任何东西)
您可以在帮助->关于-> JRE下检查用于运行intellij的JRE。
好吧,我无法回复上面Engineer Dollery的帖子,因为我还没有50名代表……但是我注意到了同样的事情。:关于hg4idea一个问题已报告已经http://youtrack.jetbrains.com/issue/IDEA-118529。
除禁用hg4idea插件外,尚无修复程序。但是,如果事实证明这是您的问题,请为该错误投票!
编辑:JetBrains已修复了版本IU-138-815中的错误!
我有一个类似的问题。在这种情况下,它是Subversion插件。(Mac Mavericks,SVN版本1.7.10)一旦禁用,就可以再次使用IntelliJ。
从jstack得到这个:
"Change List Updater" daemon prio=2 tid=10df3f000 nid=0x12a421000 runnable [12a41f000]
java.lang.Thread.State: RUNNABLE
at java.util.Collections.unmodifiableList(Collections.java:1131)
at com.intellij.execution.configurations.ParametersList.getList(ParametersList.java:88)
at com.intellij.execution.configurations.GeneralCommandLine.getCommandLineString(GeneralCommandLine.java:210)
at com.intellij.execution.configurations.GeneralCommandLine.getCommandLineString(GeneralCommandLine.java:189)
at org.jetbrains.idea.svn.commandLine.CommandExecutor.createProcessHandler(CommandExecutor.java:186)
at org.jetbrains.idea.svn.commandLine.CommandExecutor.start(CommandExecutor.java:137)
- locked <76afcdfb8> (a java.lang.Object)
at org.jetbrains.idea.svn.commandLine.CommandExecutor.run(CommandExecutor.java:262)
at org.jetbrains.idea.svn.commandLine.CommandRuntime.runWithAuthenticationAttempt(CommandRuntime.java:62)
at org.jetbrains.idea.svn.commandLine.CommandUtil.execute(CommandUtil.java:206)
at org.jetbrains.idea.svn.commandLine.CommandUtil.execute(CommandUtil.java:189)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.execute(SvnCommandLineInfoClient.java:120)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.issueCommand(SvnCommandLineInfoClient.java:104)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.doInfo(SvnCommandLineInfoClient.java:90)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineInfoClient.doInfo(SvnCommandLineInfoClient.java:232)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineStatusClient.doStatus(SvnCommandLineStatusClient.java:106)
at org.jetbrains.idea.svn.SvnRecursiveStatusWalker.go(SvnRecursiveStatusWalker.java:79)
at org.jetbrains.idea.svn.SvnChangeProvider.getChanges(SvnChangeProvider.java:89)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:686)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:596)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.d(ChangeListManagerImpl.java:480)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$1100(ChangeListManagerImpl.java:71)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.run(ChangeListManagerImpl.java:387)
at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:260)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
其他运行:
"Change List Updater" daemon prio=2 tid=124556000 nid=0x129c7a000 runnable [129c78000]
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
at java.io.File.exists(File.java:733)
at org.apache.xerces.parsers.SecuritySupport$7.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.xerces.parsers.SecuritySupport.getFileExists(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineStatusClient.parseResult(SvnCommandLineStatusClient.java:138)
at org.jetbrains.idea.svn.commandLine.SvnCommandLineStatusClient.doStatus(SvnCommandLineStatusClient.java:118)
at org.jetbrains.idea.svn.SvnRecursiveStatusWalker.go(SvnRecursiveStatusWalker.java:79)
at org.jetbrains.idea.svn.SvnChangeProvider.getChanges(SvnChangeProvider.java:89)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:686)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:596)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.d(ChangeListManagerImpl.java:480)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$1100(ChangeListManagerImpl.java:71)
at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.run(ChangeListManagerImpl.java:387)
at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:260)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
下列选项(idea64.exe.vmoptions)的最佳经验:
-服务器 -Xms1g -Xmx3g -Xss16分钟 -XX:NewRatio = 3 -XX:ReservedCodeCacheSize = 240m -XX:+ UseCompressedOops -XX:SoftRefLRUPolicyMSPerMB = 50 -XX:ParallelGCThreads = 4 -XX:+ UseConcMarkSweepGC -XX:ConcGCThreads = 4 -XX:+ CMSClassUnloadingEnabled -XX:+ CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction = 65 -XX:+ CMSScavengeBeforeRemark -XX:+仅使用CMSInitiatingOccupancy -XX:MaxTenuringThreshold = 1 -XX:SurvivorRatio = 8 -XX:+ UseCodeCacheFlushing -XX:+ AggressiveOpts -XX:-TraceClassUnloading -XX:+始终为PreTouch -XX:+分层编译 -Djava.net.preferIPv4Stack = true -Dsun.io.useCanonCaches = false -Djsse.enableSNIExtension = true -ea
通过切换到32位模式,我已经解决了性能问题。它似乎与运行IntelliJ的JRE有关。它附带一个32位的1.7 JRE,在启动idea.exe时使用。如果启动idea64.exe,它将使用系统上安装的64位JRE。就我而言,这是一个1.6 JDK(我用于开发的JDK)。这导致IntelliJ几乎无法使用。
在安装了正确的64位1.7 JDK之后,使用64位模式也一切都很好。
请参阅IntelliJ支持网站上的答案。
我遇到了类似的问题,即启动和堆问题非常缓慢,增加VM并没有带来太大的变化,只是延迟了不可避免的情况,对我来说,解决方法是通过“文件”>“ InvalidateCaches / Restart”来使缓存无效。
https://www.jetbrains.com/help/idea/2016.1/cleaning-system-cache.html
自早期Beta版以来,我一直在使用13,而我一点也没有问题。也许这是您的特定设置。也许您的项目随着时间的推移而增长,而您最初给Idea带来的记忆现在还不够用?尝试给Idea提供更多的内存以供使用:http : //www.jetbrains.com/idea/webhelp/increasing-memory-heap.html(有关如何执行此操作的说明)。
根据我的经验,IntelliJ 13版明显比12版慢。有几种方法可以加快它的速度,例如增加intelliJ的VM选项。例如。我正在使用一个maven项目,为此,我将运行器和导入器选项增加到4GB。它使事情比以前快得多。
编辑idea.vmoptions文件只是下一个产品更新之前的临时解决方案。见一个更持久的解决方案JetBrains的帮助页面通过虚拟机的设置来设置这些值- https://www.jetbrains.com/help/idea/tuning-the-ide.html
增加编译器的堆大小。默认情况下,该值为700m,随着插件数量的增加,该值太小了。
在v2019.1,它位于以下位置:
设置 -> 构建,执行,部署 -> 编译器 -> 构建进程堆大小(兆字节)
在我放置4000后,它解决了我的大部分性能问题。
我的特殊情况:method breakpoints
在调试模式下运行代码的时间很多,这使我的智能速度变慢。