Maximum Heap Size 我都调整为 10G ,居然用一段时间后打字都会卡顿?
![]() | 1 lasuar 213 天前 卡的时候没看内存占用? |
![]() | 2 valord577 213 天前 ![]() 具体情况还是得拿出日志和 jvm logs 来分析 以下只是猜想: 1. java 运行期间会做 jit 储存 jit 也有个 size 当这个满了后 会导致卡顿 2. 默认的 gc 在回收内存时 会导致卡顿 下面是我的 idea.vmoptions 仅供参考 -Xms1024m -Xmx2048m -XX:+UseZGC -XX:SoftRefLRUPolicyMSPerMB=0 -Dfile.encoding=UTF-8 -Djava.complier=NONE -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -ea -Dsun.io.useCanOnCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -Dapple.awt.application.appearance=system -Dnosplash=true -XX:ErrorFile=$HOME/Downloads/java_error_in_idea_%p.log -XX:HeapDumpPath=$HOME/Downloads/java_error_in_idea.hprof |
![]() | 3 ugpu 213 天前 1. GC 回收机制 2. 其他程序占用了硬盘读写 |
4 chenxiankong 213 天前 1. 更新最新版 2. 禁用 metal ,用 opengl |
5 wsbqdyhm 213 天前 via iPhone 我也是同款,内存常年 48+,就是 ps+lrc+chrome 十多个标签 wx+其他十来个 app 小应用开着,后台一大堆东西没细看,好像有个 icopy 占用内存很多,准备卸了 |
![]() | 6 EeveeRibbon 213 天前 @valord577 compiler 拼错了吗? |
![]() | 8 C02TobNClov1Dz56 212 天前 @valord577 小内存用 ZGC 下不会比 G1 明显优势的吧? 下面是我的 idea.vmoptions 配置参考 # 忽略未识别参数 -XX:+IgnoreUnrecognizedVMOptions # 元空间大小 -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=1G # 增加堆内存大小 -Xms2g -Xmx6g # 调整代码缓存大小 -XX:InitialCodeCacheSize=512m -XX:ReservedCodeCacheSize=512m # 调整 JIT 编译器的参数 -XX:CICompilerCount=2 -XX:TieredStopAtLevel=1 -XX:MaxInlineLevel=3 -XX:Tier4MinInvocatiOnThreshold=100000 -XX:Tier4InvocatiOnThreshold=110000 -XX:Tier4CompileThreshold=120000 -XX:-DontCompileHugeMethods # 关闭热度衰减 -XX:-UseCounterDecay # 编译阈值,被调用多少次后,就编译为机器码,在 client 下默认是 933 server 默认是 140 -XX:OnStackReplacePercentage=933 #立即分配内存 -XX:+AlwaysPreTouch # int 缓存 -XX:AutoBoxCacheMax=20000 # gc 收集器 # 使用 G1 收集器 -XX:+UseG1GC #G1 开启字符串去重 -XX:+UseStringDeduplication #GC 最大暂停时间(毫秒, 默认 200) #低配置机器( 8GB 内存以下): 设置 200ms 或更高,以减少 GC 的频率,避免频繁触发 #高配置机器( 16GB 内存或以上): 设置为 100ms ,以追求更流畅的用户体验。 #小型项目:100ms 足够,保证交互流畅。 #大型项目(超过 10 万行代码):建议设置为 150ms 到 200ms ,避免频繁的 GC 暂停。 -XX:MaxGCPauseMillis=100 -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dsun.io.useCanOnCaches=false -Dsun.java2d.metal=true -Djbr.catch.SIGABRT=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -XX:CompileCommand=exclude,com/intellij/openapi/vfs/impl/FilePartNodeRoot,trieDescend # 解决一些小问题 -Dide.no.platform.update=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 --add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED --add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED |
![]() | 9 wang93wei 212 天前 @chengyiqun 用 AI 分析了一下这个配置,好像有点问题。 ![]() |
![]() | 10 C02TobNClov1Dz56 212 天前 @wang93wei 有什么问题, 我现在用这个配置, 非常流畅啊 |
11 INCerry 212 天前 这是我的配置,仅供参考,内存够的话可以再给足一些 -Xms6G -Xmx6G -XX:MetaspaceSize=512m -XX:+TieredCompilation -XX:SoftRefLRUPolicyMSPerMB=512 -XX:CICompilerCount=4 -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact |
12 julyclyde 211 天前 我其实觉得,是不是应该 heap 设置小一点,压迫 GC 更频繁的进行工作? 这样其实可以减少每次的工作量 |
13 julyclyde 211 天前 其实我也挺喜欢 pycharm 的。但是我不喜欢 java 于是戒了 |