【问题标题】:Intellij heap size, Initial heap size set to a larger value than the maximum heap sizeIntellij 堆大小,初始堆大小设置为大于最大堆大小的值
【发布时间】:2018-04-14 10:54:27
【问题描述】:

我是 Java 初学者,刚开始使用 Intellij 作为我的 IDE。

当我使用它时,有时它会延迟。

我将 xms 和 xmx 更改为更大的堆大小(xms = 1024,xmx = 2048),但它会引发错误。

所以,我把它回滚了。

错误消息是这样的:“初始堆大小设置为大于最大堆大小的值”。

有什么问题?

如果可能,如何增加最大堆大小?

我使用的是笔记本电脑,它有 8GB 内存。使用 x64 Intellij.exe。

【问题讨论】:

    标签: java memory intellij-idea heap-memory


    【解决方案1】:

    如果您在 2019.2 更新后在 InteliJ 中看到此错误,那是因为更新将 JVM XMX 值更改为 2048m 而没有检查可能允许 XMS 变得大于最大 XMX 值的相关值,这是无效的并创建那个错误。

    即我的值是 XMX=6000m 和 XMS=4096m 但在 2019.2 更新后它们是 XMX=2048m 和 XMS=4096m

    您必须手动更改这些值,以使 XMS 等于或小于 XMX。在 Mac 上,VM 选项文件是 ~/Library/Preferences/IntelliJIdea2019.2/idea.vmoptions

    注意:该路径假定您使用的是 InteliJ 版本 2019.2。如果

    【讨论】:

    • 需要重新启动。文件 > 使缓存无效/重新启动... > 只需重新启动。对我来说,文件位于~/.local/share/JetBrains/Toolbox/apps/IDEA-U/ch-0/<version>/bin
    • 我在 Windows 10 上运行的版本为 2019.2.4,然后升级到 2019.3 并遇到此错误。尝试使用“exe”文件启动它没有输出任何错误,即使在 cmd 和 powershell 中也是如此。通过执行包含的“idea.bat”,我得到了关于内存的消息。我检查了我的idea64.vm.options 文件,一切看起来都正确。感谢@Mijo,我检查了我的用户配置文件下的文件。将“-Xmx4096m”更改为“-Xmx2038m”;没错……“-Xmx2038m”……我有“-Xms2048m”作为最小的启动内存。
    • 正确路径:~/Library/Preferences/IdeaIC2019.2/idea.vmoptions
    【解决方案2】:

    我在 Linux 上遇到了同样的问题。配置文件位于 ~/.IntelliJIdea2018.2/config/idea64.vmoptions 该目录将类似于 ~/.IntelliJIdeayyyy.n/config ,其中 yyyy 是年份,n 是该年份的版本号。 确保 -Xms 值高于 -Xmx 这是我为具有 8GB RAM 的 ubuntu 18.04 的工作配置

    # custom IntelliJ IDEA VM options
    
    -server
    -Xms4096m
    -Xmx4096m
    -XX:NewSize=1024m
    -XX:MaxNewSize=1512m
    -XX:NewRatio=1
    -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
    

    【讨论】:

    • 确保-Xms 值低于 小于或等于-Xmx
    【解决方案3】:

    我在 MAC 中的 IntelliJ 中遇到了同样的问题。

    IntelliJ 中有一个构建过程堆大小配置。您可以在

    中找到此设置

    首选项 > 编译器 > 构建进程堆大小

    确保 Xmx 值(在环境或 VM 选项中)低于设置中的值。如果不是,请在 IntelliJ 设置中增加 Build Process Heap Size 或减少 VM 选项中的 Xmx 值。

    默认构建进程堆大小为700m。

    【讨论】:

      【解决方案4】:

      使用帮助 | Edit Custom VM Options,仅将 -Xmx 值更改为 2GB 或您需要的任何值,-Xms 值应该更低或相同。请注意,过高的堆会使 GC 暂停时间更长。

      您的问题可能根本与内存设置无关。报告性能问题的正确方法是described in this document。您需要捕获 CPU 快照并将其提交给 JetBrains 支持或问题跟踪器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-29
        • 2019-03-21
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-12
        相关资源
        最近更新 更多