V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dioxide
V2EX  ›  程序员

Jetbrains 系的 IDE 的 JVM 配置存在多大的调优空间? 可否分享你们的配置?

  •  
  •   dioxide · 361 天前 · 3238 次点击
    这是一个创建于 361 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的当然是使撸代码时更顺滑.

    但从网上搜罗的大多数文章都只简单提到内存大小的配置, 一直没找到有系统介绍各项参数的.

    另附:我正在使用的配置文件(综合了各家,本人不懂 JVM,也不知道目前这样合理否)

    #堆栈设置
    -Xms4096m
    -Xmx4096m
    -Xmn3072m
    -XX:MetaspaceSize=1024m
    -XX:MaxMetaspaceSize=1024m
    -XX:+AlwaysPreTouch
    -XX:InitialCodeCacheSize=1200m
    -XX:ReservedCodeCacheSize=1200m
    -XX:+UseCompressedOops
    -Dfile.encoding=UTF-8
    
    # 采用何种垃圾回收参数
    -XX:+UseConcMarkSweepGC
    -XX:ParallelGCThreads=4
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    # JIT 参数
    -XX:CICompilerCount=2
    -XX:TieredStopAtLevel=1
    -XX:MaxInlineLevel=3
    -XX:Tier4MinInvocationThreshold=100000
    -XX:Tier4InvocationThreshold=110000
    -XX:Tier4CompileThreshold=120000
    
    -Dsun.io.useCanonPrefixCache=false
    -Djava.net.preferIPv4Stack=true
    -Djdk.http.auth.tunneling.disabledSchemes=""
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    -Djdk.attach.allowAttachSelf
    -Xverify:none
    
    -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
    -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
    
    30 条回复    2020-12-04 16:09:42 +08:00
    qfdk
        1
    qfdk   361 天前
    加一条内存就好了
    OysterQAQ
        2
    OysterQAQ   361 天前
    你都说你不懂 JVM 了为什么还搞呢 就调下堆内存吧
    dioxide
        3
    dioxide   361 天前   ❤️ 1
    @OysterQAQ 所以才来问问大家,看熟悉 JVM 的人都是怎么配置的啊
    kingfalse
        4
    kingfalse   361 天前 via Android
    表示什么都没调,全部是默认的,配置 mbp 2018 i7 16 512
    neoblackcap
        5
    neoblackcap   361 天前
    事实证明,JVM 堆栈配 10G,上 SSD 硬盘,很快。
    cubecube
        6
    cubecube   361 天前   ❤️ 2
    贴一份我自用的吧,供各位大佬批判


    -Xms1024m
    -Xmx2048m
    -XX:ReservedCodeCacheSize=320m
    -XX:+UseG1GC
    -XX:+UseCompressedOops
    -XX:G1HeapRegionSize=4m
    -XX:G1NewSizePercent=8
    -XX:InitiatingHeapOccupancyPercent=40
    -XX:G1ReservePercent=20
    -XX:MaxGCPauseMills=100
    -XX:+UseStringDeduplication
    -XX:+UseCompressedStrings
    -XX:+PerfDisableSharedMem
    -XX:+ParallelRefProcEnabled

    -ea
    -Xverify:none
    -XX:CICompilerCount=2
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    -Dsun.io.useCanonPrefixCache=false
    -Djdk.http.auth.tunneling.disabledSchemes=""
    -Djava.net.preferIPv4Stack=true
    -Djdk.attach.allowAttachSelf=true
    -Dkotlinx.coroutines.debug=off
    -Djdk.module.illegalAccess.silent=true
    -Dfile.encoding=UTF-8

    -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
    -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
    rambo92
        7
    rambo92   361 天前 via Android
    64g 的 mbp 表示毫无鸭梨😁
    sagaxu
        8
    sagaxu   361 天前 via Android
    你这是负优化
    limuyan44
        9
    limuyan44   361 天前
    只会调个 Xms Xmx,怎么优化也不如插根内存条实在,真有明显的优化官方早就默认了。
    chendy
        10
    chendy   361 天前
    因为不如 jb 更了解自己的产品特性,所以调整一下 Xms 和 Xmx 就差不多了
    hand515
        11
    hand515   361 天前 via Android
    关键是大内存+ssd
    w292614191
        12
    w292614191   361 天前
    也不知道从哪个 CSDN 复制的。

    强行优化。
    w292614191
        13
    w292614191   361 天前   ❤️ 1
    如果多服务卡,你可以配置每个 JVM 的最大内存。

    https://pic.downk.cc/item/5fc987c7394ac52378c2ed30.png
    yalin
        14
    yalin   361 天前
    没操心过这事
    szq8014
        15
    szq8014   361 天前
    如果有,那 jb 出厂的时候肯定已经调得差不多了,就调个 xms xmx 就可以了
    cheng6563
        16
    cheng6563   361 天前   ❤️ 1
    换 OpenJ9 的 JVM,内存使用能少一大截。
    cco
        17
    cco   361 天前
    默认足矣,最好是硬件上提升。
    riggzh
        18
    riggzh   361 天前 via iPhone
    64G 内存 我直接给了 32
    MrSheng
        19
    MrSheng   361 天前   ❤️ 1
    有跟我一样的么,
    等它提示哪哪不够了然后在弹出的框框里面把值改大~~~
    lyz1990
        20
    lyz1990   361 天前
    默认没觉得有什么问题
    FantaMole
        21
    FantaMole   361 天前
    调半天不如在双十二的时候去京东买条什么酷兽,玖合那种 399 的 32G 内存,反正售后京东兜底。狠一点的,直接 4 个槽插满,上到 128G,5 年都不用考虑调优了
    someonedeng
        22
    someonedeng   361 天前   ❤️ 1
    之前一直用 cms GC,时不时就 STW 几秒就很烦,不懂是 idea ( ver.2020.3 )还是 jvm (AdoptOpenJDK8)的问题。换了 G1 就没出现过可感的 STW 了

    ```
    -server
    -XX:MetaspaceSize=128M
    -XX:MaxMetaspaceSize=2048m
    -XX:+AlwaysPreTouch
    -Xms4g
    -Xmx8192m
    -XX:ReservedCodeCacheSize=512m
    -XX:+UseG1GC
    -XX:+UseStringDeduplication
    -XX:AutoBoxCacheMax=20000
    -ea
    -Dsun.io.useCanonCaches=false
    -Dsun.awt.keepWorkingSetOnMinimize=true
    -Djava.net.preferIPv4Stack=true
    -Djdk.http.auth.tunneling.disabledSchemes=""
    -Djsse.enablesSNIExtension=false
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    -Dfile.encoding=UTF-8

    -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
    -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
    ```
    sugars
        23
    sugars   361 天前   ❤️ 1
    我 mac16 款 8G 256, Webstorm

    -Xms512m
    -Xmx3072m
    -XX:ReservedCodeCacheSize=240m
    -XX:+UseCompressedOops
    -Dfile.encoding=UTF-8
    -XX:+UseConcMarkSweepGC
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    -Dsun.io.useCanonCaches=false
    -Djava.net.preferIPv4Stack=true
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow

    -XX:ErrorFile=$USER_HOME/java_error_in_webstorm_%p.log
    -XX:HeapDumpPath=$USER_HOME/java_error_in_webstorm.hprof
    -Xbootclasspath/a:../lib/boot.jar

    写前端没什么问题哈
    AoEiuV020
        24
    AoEiuV020   361 天前   ❤️ 1
    网上 copy 再小改几条熟悉的,

    -server
    -Xms8G
    -Xmx8G
    -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
    -Dfile.encoding=UTF-8
    -Duser.language=en
    no1xsyzy
        25
    no1xsyzy   361 天前
    “撸代码时更顺滑” 是指?
    你没 benchmark 你怎么调优?
    joysir
        26
    joysir   361 天前   ❤️ 1
    MacOS BigSur 下 IDEA 升级到最新版的话会发现窗口被放大了,可以使用以下参数回到原来的缩放级别:

    -Dsun.java2d.uiScale.enable=true
    -Dide.ui.scale=1
    graffitist
        27
    graffitist   361 天前
    有一点我不懂,撸代码的时候为什么要调 JVM ?强行优化?
    youla
        28
    youla   361 天前
    小白:大佬能教我调个东西么?

    大佬:调什么?

    小白:调个 JB
    yahz
        29
    yahz   361 天前   ❤️ 1
    -Xms2048m
    -Xmx2048m
    -XX:ReservedCodeCacheSize=240m
    -XX:+UseG1GC
    -XX:MaxMetaspaceSize=2048m
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    -XX:CICompilerCount=2
    -Dsun.io.useCanonPrefixCache=false
    -Djdk.http.auth.tunneling.disabledSchemes=""
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    -Djdk.attach.allowAttachSelf=true
    -Dkotlinx.coroutines.debug=off
    -Djdk.module.illegalAccess.silent=true
    -XX:+UseCompressedOops
    -Dfile.encoding=UTF-8
    -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
    -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
    -Dide.no.platform.update=true


    15 款 MBP,堆内存一样大避免自动扩缩容,用 G1GC 就完了,其他没动
    jalena
        30
    jalena   361 天前
    还是堆硬件实在,一劳永逸!
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3830 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:01 · PVG 17:01 · LAX 01:01 · JFK 04:01
    ♥ Do have faith in what you're doing.