20 款 m1 pro 16+512 idea 升级到最新版本,内存设置了 4096 ,就开了一个项目,内存占用 7.26G ,app 内存 5.89 ,联动内存 1.37 ,被压缩 4.60
1
alexcding 2022-04-26 11:48:47 +08:00 via iPad 1
Java 祖传
|
2
whx 2022-04-26 12:44:28 +08:00 via iPhone 2
Java 写的软件也就这样了,再多内存都吃得下。
还有原因就是老版本的 jdk GC 不喜欢释放占用的物理内存,jdk11 以上 Shenandoah GC 可解。 -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact https://wiki.openjdk.java.net/display/shenandoah/Main Eclipse 上自用快半年以上了,效果不错。 |
4
Rache1 2022-04-26 13:34:05 +08:00
最新版的内存好像出了问题,我这里可以跑到 14G 😂
|
5
whx 2022-04-26 13:37:40 +08:00 via iPhone
@devinww 最新版的 idea 自带的 jre 是 11 ,是支持 Shenandoah GC 的,这个是修改 idea 的运行环境,和项目的开发环境没关系。
只修改 idea 的 vmoptions 文件就行了。 我在 win10 下测试最新版的 idea 社区版是可以的。 |
6
devinww OP @whx 你说的是 runtime 啊,这个我已经升到最新的 17 了
Runtime version: 17.0.1+12-b164.8 aarch64 |
7
wqhui 2022-04-26 13:46:12 +08:00
我开 4 个项目 5.8G ,试试把 idea 没用的插件卸了
|
9
qwerty01446 2022-04-26 13:50:38 +08:00
@whx 最新版 IDEA ,runtime 是 17 ,效果很好。又是涨知识的一天,多谢哈哈哈。
|
10
2696284032 2022-04-26 13:55:13 +08:00
我跑微服务,开个 10 个项目,idea 用 4 个 G 内存,直接最低堆内存:-Xms128m -Xmx128m
|
11
qwerty01446 2022-04-26 14:00:09 +08:00
@whx 不过 compact 也回收的挺激进的? IDEA 的 CPU 使用占用很高,不知道是 BUG 还是什么原因
|
12
qwerty01446 2022-04-26 14:03:45 +08:00
@whx 抱歉回复的这么多。有点像 JBR17 的问题,我切换到 11 ,同样的设置 CPU 占用就正常了。
|
13
whx 2022-04-26 14:09:48 +08:00 via iPhone 1
@qwerty01446 没关系,17 的 Shenandoah GC 相比 11 有大升级,停顿时间更短,可能是这个原因导致。
|
14
devinww OP @2696284032 我把内存设置低了,他会在根目录下产生一个文件
|
15
devinww OP @qwerty01446 你在 vm 里加了-XX:+UseShenandoahGC
-XX:ShenandoahGCHeuristics=compact 嘛, 我加了之后 idea 直接起不来了。。去了才行 |
16
2696284032 2022-04-26 14:21:50 +08:00
@devinww 我是 window ,mac 不了解了,不过我 idea 分配的一个 G ,然后项目分配 128M 或者 256 启动的
|
17
DinnyXu 2022-04-26 14:33:22 +08:00
我跟你一样型号,我 idea 设置的是 3096 ,我一个项目里面有十几个微服务模块,平时的话会开 4 个服务,查看活动监视器内存占用是 3-5 个 G ,大多数时间是 3 点几。你需要注意的是自己的 app 是不是 arm 支持的,还有 jdk 是否是 arm 的,这样能减少内存的占用
|
18
chendy 2022-04-26 14:46:55 +08:00
不用的插件关一波应该能减少一些内存占用
手里 20 年的大屎山,才吃了 5g 内存( xmx 4g |
19
qwerty01446 2022-04-26 14:54:17 +08:00
@devinww 我也是 M1 的 mac ,最新版 IDEA+JBR17 ,加了这两行是可以启动的,不过 CPU 使用率很高,一直在 600-800 ,我换成 JBR11 之后,就好了。
|
20
qwerty01446 2022-04-26 14:55:23 +08:00 2
@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 |
21
tsaioil 2022-04-26 15:22:00 +08:00 1
@devinww #15 只加那两行的确会导致 IDEA 运行不起来,补充加:
-Dfile.encoding=UTF-8 -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:+AlwaysPreTouch -XX:+UseShenandoahGC -XX:+UseLargePages -XX:-DontCompileHugeMethods --illegal-access=permit |
22
oneisall8955 2022-04-26 15:27:33 +08:00 1
如果项目是 java ,如 springboot ,VM options 行添加内存限制,这个很有用。
|
23
whx 2022-04-26 15:30:33 +08:00 via iPhone 1
@devinww vmoptions 里面有-XX:+UseG1GC 吗?
有的话去掉-XX:+UseG1GC 再加上 -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact 试下。 |
25
devinww OP @qwerty01446 已抄作业 谢谢
|
26
devinww OP @oneisall8955 是 java 项目,不过是用 tomcat 容器装的,也可以设置嘛,一半给多少呢
|
27
devinww OP @qwerty01446 我和你一样,这么配置之后 17 好卡,暂时切回默认版本 11 了。
|
28
qwerty01446 2022-04-27 09:28:26 +08:00
@devinww 是的,加了-XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact 这两行后 CPU 占用会特别多,可能就是 whx 在 13 楼说的原因吧 hh
|
29
tanrenye 2022-04-27 09:46:09 +08:00
加了上面大佬的参数后的确 CPU 占用很容易飙升,考虑到内存占用多点也没啥,还是算了,毕竟 Intel CPU 上去随时开飞机。。。
|