Performance 使用Maven和IntelliJ IDEA处理大型项目的技巧

Performance 使用Maven和IntelliJ IDEA处理大型项目的技巧,performance,maven,configuration,ide,intellij-idea,Performance,Maven,Configuration,Ide,Intellij Idea,我正在阅读一篇关于团队使用Intellij Idea进行大型maven项目的经验的博客文章,并且还查看了大约两年前Idea v.10.0.2发布的一个问题 前一篇文章中提到的一个技巧非常有意义: 将C:\Users\$user\.IntelliJIdea12移动到防病毒扫描的非访问文件夹中 我已经搜索了以性能为中心的VM选项,目前我的idea64.exe.vmoptions如下所示: -Xms1200m -Xmx1200m -XX:MaxPermSize=200m -ea -server -XX

我正在阅读一篇关于团队使用Intellij Idea进行大型maven项目的经验的博客文章,并且还查看了大约两年前Idea v.10.0.2发布的一个问题

前一篇文章中提到的一个技巧非常有意义:
C:\Users\$user\.IntelliJIdea12
移动到防病毒扫描的非访问文件夹中

我已经搜索了以性能为中心的VM选项,目前我的
idea64.exe.vmoptions
如下所示:

-Xms1200m
-Xmx1200m
-XX:MaxPermSize=200m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-Dsun.io.useCanonCaches=false
问题
  • 对于大型/大型maven项目,您是否有更多这样的技巧来提高Intellij IDEA(12.1.3,64位)的性能

  • 您能在
    idea64.exe.vmoptions
    和/或
    IDEA.properties
    中分享您在w.r.t虚拟机选项中的发现吗

  • 我曾尝试使用JDK 7来启动IDEA,但这似乎并没有以某种方式严重影响它的性能。如果您尝试过这样做,您是否也有过同样的经历


  • 根据@CrazyCoder的建议,我遵循了有关此问题的官方常见问题解答中的步骤:

    具体而言,以下因素似乎产生了明显的影响:

  • c:/Users/$user/.IntelliJIdea12
    移动到McAfee的on access扫描仪排除的位置,并更新
    $INTELLJ_INSTALL_文件夹/bin/idea.properties
    以指向新位置(其中
    c:/dev
    是McAfee排除的文件夹):

    idea.config.path=c:/dev/.IntelliJIdea12/config
    idea.system.path=c:/dev/.IntelliJIdea12/system
    idea.plugins.path=c:/dev/.IntelliJIdea12/config/plugins
    idea.log.path=c:/dev/.IntelliJIdea12/system/log

  • $INTELLJ_INSTALL_FOLDER/bin/idea.properties
    set
    idea.jars.nocopy=true
    中,如博客文章所述

  • 还原回库存
    $INTELLIJ_INSTALL_文件夹/bin/idea64.exe.vmoptions
    。剩下的唯一更改是中为64位JVM建议的更改。以下是我目前在该文件中的内容:

    -Xms1200m
    -Xmx1200m
    -XX:+UseCompressedOops
    -XX:MaxPermSize=350m
    -XX:ReservedCodeCacheSize=96m
    -XX:+UseCodeCache刷新
    -ea
    -Dsun.io.useConcaches=false
    -Djava.net.preferIPv4Stack=true

  • 禁用Git集成插件,因为我主要使用Git中的命令行Cygwin

  • 监视
    .IntelliJIdea12/idea.log
    非常有用。 例如:我禁用了osmorc(用于OSGI)插件,因为我看到它在尝试打开项目中的zip文件时经常出现日志错误。示例错误:

    WARN-pi.vfs.impl.jar.JarHandlerBase-打开zip文件时出错: C:\dev\a-maven-project\pom.xml java.util.zip.ZipException:中的错误 打开zip文件 在java.util.zip.ZipFile.open(本机方法)
    位于java.util.zip.ZipFile。(ZipFile.java:127)
    位于java.util.zip.ZipFile(ZipFile.java:143)

  • 禁用了所有我不需要的插件。当前禁用的插件列表为:

    禁用的插件:ASP(0.1)、Android设计器、Android支持(10.0), 用于IntelliJ IDE的Atlassian连接器(3.0.9,SVN:1212171008),基座 Cucumber(1.0)、BashSupport(1.1beta16)、CFML支持(3.53), CheckStyle IDEA(4.2)、ClearCase集成(2.0)、Cloud Foundry 集成(1.0)、云蜂集成(1.0)、指挥官(1.0.0), 复制为HTML(0.8.1)、Cucumber for Groovy(1.0)、Cucumber for Java (1.0)、数据库导航器(3.0.2501)、描述键(0.3)、流口水 支持(1.0)、Eclipse集成(3.0)、Flash/Flex支持(1.0), GWT支持(1.0)、Geronimo集成(1.0)、Git集成(8.1), GitHub、谷歌应用引擎集成(1.1.4)、Grep控制台(1.1), GuiceyIDEA(8.0)、HAML、IDEtalk(1.0)、IdeaVim(0.28)、标识符 Highlighter(3.62)、IntelliJad Plus(0.5.6)、JBoss集成(1.0), JBoss jBPM(2.0.0)、JRebel插件(2.0.2)、JavaFX(1.0)、关键推动者 (1.0.11)、Log4JPlugin(1.02)、降价(0.8.3)、Osmorc(1.4.3), Performce集成(2.0)、PluginUpdateNotifier(2.0.3)、RemoteTail (0.3.4)、树脂集成(8.1)、Ruby(5.4.0.20130410)、SQL查询 插件(2.2)、SSH远程运行(0.1)、Seam页面流支持(1.0)、Seam 页面支持(1.0)、Seam支持(1.0)、SmartReditor(0.8.3)、Struts 导航器插件(1.3.4)、Subversion集成(1.1)、TFS 集成(999.999)、Tapestry支持(1.0)、TestNG-J(8.0)、UI 设计器、UI设计器(核心)、Vaadin支持(1.0)、Visual SourceSafe 集成(2.0)、WebLogic集成(1.0)、WebSphere集成 (1.0)、ZKM解读(1.0)、dmServer支持(0.9.5)、hg4idea(10.0), soapUI插件(3.5)


  • 有时,大型项目的内存可能会耗尽。大型maven项目的导入过程失败。
    因此,如果您的项目中的任何模块用红线划线,您会看到

    Exception java.lang.OutOfMemoryError: GC overhead limit exceeded
    
    在上面,转到“设置->构建工具->Maven->导入”,并在那里找到“导入器的VM选项”选项。增加限制,将其设置为
    -Xmx1g
    (或更多)

    IntelliJ IDEA 2017.2,在处理大型项目时非常有用。基本上,您可以标记哪些模块将按IDEA加载,哪些不加载。IDE不会以任何方式接触卸载的模块。它们不会被索引、搜索,也不会在检查时进行重构。可以在“加载/卸载模块”对话框中快速配置加载/卸载模块。可以使用打开该对话框

    项目树窗口→ 右键单击文件→ 加载/卸载模块

    暂时减少IDEA使用的模块数量将大大提高大型项目的性能。您可以在我写的一篇博文中找到有关IntelliJ IDEA的此功能和其他性能调整的更多信息:

    你喜欢吗