在使用IntelliJ 13终极版一周的时间里,它似乎真的很慢。

首先,整个IDE每隔一段时间就会停止一秒钟左右。与12版相比,Java编辑器的自动完成非常慢。

除了使用德古拉主题外,我没有对默认设置进行任何更改。

看来这不是我自己的问题。许多人建议将堆大小设置为高于默认值,或清除缓存,但我没有检查或测试这些建议。我是否需要更改某些设置来提高新版本的性能?


当前回答

从早期测试开始,我就一直在使用13,没有任何问题。也许是你的特定设置。也许您的项目随着时间的推移而增长,您最初给Idea的内存现在已经不够用了?尝试为Idea提供更多的内存:http://www.jetbrains.com/idea/webhelp/increasing-memory-heap.html(关于如何做到这一点的说明)。

其他回答

我已经通过切换到32位模式解决了性能问题。它似乎与运行IntelliJ的JRE有关。它附带32位1.7 JRE,在启动idea.exe时使用。如果启动idea64.exe,它使用安装在系统上的64位JRE。在我的例子中,使用的是1.6版本的JDK(我用于开发的JDK)。这导致IntelliJ几乎无法使用。

在安装了一个合适的64位1.7 JDK之后,64位模式也没问题。

在IntelliJ Support网站上可以看到答案。

使用Intellij 2016.1(64位)和JDK 1.8(64位)时,我面临着缓慢的性能。 我换到

64位intellij 64位Java 8作为JAVA_HOME路径(这是运行64位Intellij所需的) 32位Java 8作为Intellij项目使用的JDK(文件->项目结构|项目设置->项目|项目SDK)。

通过这种组合,现在Intellij的性能是相当不错的。

以下选项的最佳体验(idea64.exe.vmoptions):

    -server
    -Xms1g
    -Xmx3g
    -Xss16m
    -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:+UseCMSInitiatingOccupancyOnly

    -XX:MaxTenuringThreshold=1
    -XX:SurvivorRatio=8
    -XX:+UseCodeCacheFlushing
    -XX:+AggressiveOpts
    -XX:-TraceClassUnloading
    -XX:+AlwaysPreTouch
    -XX:+TieredCompilation

    -Djava.net.preferIPv4Stack=true
    -Dsun.io.useCanonCaches=false
    -Djsse.enableSNIExtension=true
    -ea

我在13.1上,我发现以下设置对我来说很神奇:IDE设置—>编辑器—>自动重解析延迟(毫秒),我已设置为1500(默认为300)。

在一个大型项目中,编译器和检查将在交互之间不断启动。延迟可能有助于减少堆压力,并通常使整个体验更快。我的cpu也更酷,这可能有帮助。

在我的例子中,由于IntelliJ无意中使用了JDK/JRE 1.8,导致了巨大的性能下降。这似乎会严重影响渲染性能,还会导致一些意想不到的崩溃和死锁。

这将导致IDE无法使用(操作延迟1-2s),即使是一个小的~3KLOC项目。

在运行intellij时,请确保您使用的是JDK/JRE 1.7:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67 intellij

(或任何与你的操作系统相同的东西)

您可以在Help -> About -> JRE中查看运行intellij的JRE版本。