这 idea 内存占用好迷

2022-04-26 11:11:48 +08:00
 devinww

20 款 m1 pro 16+512 idea 升级到最新版本,内存设置了 4096 ,就开了一个项目,内存占用 7.26G ,app 内存 5.89 ,联动内存 1.37 ,被压缩 4.60

4486 次点击
所在节点    macOS
29 条回复
alexcding
2022-04-26 11:48:47 +08:00
Java 祖传
whx
2022-04-26 12:44:28 +08:00
Java 写的软件也就这样了,再多内存都吃得下。

还有原因就是老版本的 jdk GC 不喜欢释放占用的物理内存,jdk11 以上 Shenandoah GC 可解。

-XX:+UseShenandoahGC
-XX:ShenandoahGCHeuristics=compact

https://wiki.openjdk.java.net/display/shenandoah/Main

Eclipse 上自用快半年以上了,效果不错。
devinww
2022-04-26 13:04:11 +08:00
@whx 没办法,还在用祖传 1.8
Rache1
2022-04-26 13:34:05 +08:00
最新版的内存好像出了问题,我这里可以跑到 14G 😂
whx
2022-04-26 13:37:40 +08:00
@devinww 最新版的 idea 自带的 jre 是 11 ,是支持 Shenandoah GC 的,这个是修改 idea 的运行环境,和项目的开发环境没关系。

只修改 idea 的 vmoptions 文件就行了。

我在 win10 下测试最新版的 idea 社区版是可以的。
devinww
2022-04-26 13:44:15 +08:00
@whx 你说的是 runtime 啊,这个我已经升到最新的 17 了
Runtime version: 17.0.1+12-b164.8 aarch64
wqhui
2022-04-26 13:46:12 +08:00
我开 4 个项目 5.8G ,试试把 idea 没用的插件卸了
whx
2022-04-26 13:47:07 +08:00
@devinww 17 的 Shenandoah GC 效果更好。
qwerty01446
2022-04-26 13:50:38 +08:00
@whx 最新版 IDEA ,runtime 是 17 ,效果很好。又是涨知识的一天,多谢哈哈哈。
2696284032
2022-04-26 13:55:13 +08:00
我跑微服务,开个 10 个项目,idea 用 4 个 G 内存,直接最低堆内存:-Xms128m -Xmx128m
qwerty01446
2022-04-26 14:00:09 +08:00
@whx 不过 compact 也回收的挺激进的? IDEA 的 CPU 使用占用很高,不知道是 BUG 还是什么原因
qwerty01446
2022-04-26 14:03:45 +08:00
@whx 抱歉回复的这么多。有点像 JBR17 的问题,我切换到 11 ,同样的设置 CPU 占用就正常了。
whx
2022-04-26 14:09:48 +08:00
@qwerty01446 没关系,17 的 Shenandoah GC 相比 11 有大升级,停顿时间更短,可能是这个原因导致。
devinww
2022-04-26 14:17:54 +08:00
@2696284032 我把内存设置低了,他会在根目录下产生一个文件
devinww
2022-04-26 14:18:36 +08:00
@qwerty01446 你在 vm 里加了-XX:+UseShenandoahGC
-XX:ShenandoahGCHeuristics=compact
嘛,
我加了之后 idea 直接起不来了。。去了才行
2696284032
2022-04-26 14:21:50 +08:00
@devinww 我是 window ,mac 不了解了,不过我 idea 分配的一个 G ,然后项目分配 128M 或者 256 启动的
DinnyXu
2022-04-26 14:33:22 +08:00
我跟你一样型号,我 idea 设置的是 3096 ,我一个项目里面有十几个微服务模块,平时的话会开 4 个服务,查看活动监视器内存占用是 3-5 个 G ,大多数时间是 3 点几。你需要注意的是自己的 app 是不是 arm 支持的,还有 jdk 是否是 arm 的,这样能减少内存的占用
chendy
2022-04-26 14:46:55 +08:00
不用的插件关一波应该能减少一些内存占用
手里 20 年的大屎山,才吃了 5g 内存( xmx 4g
qwerty01446
2022-04-26 14:54:17 +08:00
@devinww 我也是 M1 的 mac ,最新版 IDEA+JBR17 ,加了这两行是可以启动的,不过 CPU 使用率很高,一直在 600-800 ,我换成 JBR11 之后,就好了。
qwerty01446
2022-04-26 14:55:23 +08:00
@devinww 这是我的 VM options

--illegal-access=warn
-Dsun.java2d.metal=true
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.text=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.nio.charset=ALL-UNNAMED
--add-opens=java.base/jdk.internal.vm=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.desktop/java.awt=ALL-UNNAMED
--add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED
--add-opens=java.desktop/java.awt.event=ALL-UNNAMED
--add-opens=java.desktop/java.awt.image=ALL-UNNAMED
--add-opens=java.desktop/java.awt.peer=ALL-UNNAMED
--add-opens=java.desktop/javax.swing=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED
--add-opens=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.desktop/sun.awt.datatransfer=ALL-UNNAMED
--add-opens=java.desktop/sun.awt.image=ALL-UNNAMED
--add-opens=java.desktop/sun.awt.windows=ALL-UNNAMED
--add-opens=java.desktop/sun.awt.X11=ALL-UNNAMED
--add-opens=java.desktop/sun.font=ALL-UNNAMED
--add-opens=java.desktop/sun.java2d=ALL-UNNAMED
--add-opens=java.desktop/sun.lwawt=ALL-UNNAMED
--add-opens=java.desktop/sun.lwawt.macosx=ALL-UNNAMED
--add-opens=java.desktop/sun.swing=ALL-UNNAMED
--add-opens=java.desktop/com.apple.eawt=ALL-UNNAMED
--add-opens=java.desktop/com.apple.eawt.event=ALL-UNNAMED
--add-opens=java.desktop/com.apple.laf=ALL-UNNAMED
--add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED
--add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
--add-opens=jdk.jdi/com.sun.tools.jdi=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
-Xmx2048m
-XX:+UseShenandoahGC
-XX:ShenandoahGCHeuristics=compact

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849310

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX