这 IDEA 也太吃内存了, 32G 都不够用了

2023-08-18 09:02:08 +08:00
 buludu

8390 次点击
所在节点    MacBook Pro
61 条回复
Goooooos
2023-08-18 15:37:57 +08:00
zoharSoul
2023-08-18 15:48:14 +08:00
@Goooooos #10 怎么弄的?
listkun
2023-08-18 15:51:03 +08:00
a33291
2023-08-18 15:54:27 +08:00
@Goooooos #18 我用这个配置后,webstorm 内存占用从 2G 降低到 1.2G(启动后打开项目为止,其他啥都不干)
123test1010
2023-08-18 15:58:24 +08:00
1.Mac 的内存和 windows 的内存完全不是一个东西,别拿 windows 的那一套去看。
2.看你“内存压力”指标并没有看出什么不够用。
3.IDEA 这个吃内存不看这里,要看软件自动的的“内存指示器”。
看图吧: https://share.cleanshot.com/CxTXt0wd
EXChen
2023-08-18 15:58:43 +08:00
@Goooooos 做进在做服务的改造,代码量很大,IDEA 经常卡死,看到你的留言也去把 GC 配置成 ZGC ,发现卡顿的情况好多了。
Goooooos
2023-08-18 16:01:01 +08:00
Java 除了 zgc 外,当对内存达到 XMX 后,会一直占用,即使 GC 后内存不需要那么多了。
zgc 的好处是会把多余的归还给操作系统。
至于你项目非常庞大,该用的内存还是会用的。所以并不是所有人的适用
Goooooos
2023-08-18 16:01:44 +08:00
另外,jdk17 才建议使用
Goooooos
2023-08-18 17:55:16 +08:00
@123test1010
内存指示器只是堆内存的情况,实际上 JVM 的堆内存会增长到 XMX 后,即使经过 Full GC 回收,所占用的内存也不会归还给操作系统,对于操作系统,这部分内存是被 IDEA 吃了
另外 JVM 还有堆外内存,Metaspace 这些
agagega
2023-08-18 19:14:43 +08:00
JB 系 IDE 不是都可以设置堆大小吗?如果项目太大不够用它会自己弹警告,我 32G MBP 设置的 10G ,其他浏览器日常占用几个 G ,内存压力一直都是绿的,没什么问题,你这个感觉是其他东西占用多了。同样的项目同样的 JB IDE 我在 Windows Linux macOS 都开过,没觉得哪个平台明显更省内存或者用得更多。

@ShadowPower
macOS 的活动监视器根本就不显示空闲内存这个参数,反而会把已缓存文件标出来,所以很多人看到的情况应该不是系统内存被缓存占用了一部分,而是确确实实的内存不足。但可以合理猜想以前 Windows 在缓存文件这块确实没有 OS X 激进。我认为有可能在内存相对充裕的时候,macOS 会更激进地运行一些系统服务,而如果这个调度策略有 bug ,就会显得在系统缺内存的时候这些服务还在占用不小的内存空间。我在对比 Linux 桌面和 Windows 的时候也有这个感觉,Linux 系统监视器里占用的内存更少,这显然不是因为 Linux 有什么 Windows 没有的黑科技,而是运行的服务更少。

至于优化好不好这个问题。现代 macOS 的前身是 NeXTSTEP ,而 Windows 虽然内核换成了 NT 但很多底层 API 和实现还是从当年的 PC 年代一路走过来的,有这个差异很正常。问题是当双方都普及更先进的硬件之后,也很难反过来说 macOS 就比 Windows 明显更差,现在所谓感觉上性能的差距,更多来自于软件的稳定性和 UX 设计。比如一些人觉得 macOS 的鼠标有延迟感,后来才发现是因为默认开鼠标加速度,还有切换应用和桌面的那种感觉上的卡其实是因为动画。当然现在 macOS 没有积极维护了,有问题也正常,但我觉得只需要把这些细节逻辑调整一下,不需要做什么性能优化,感官上就会快一大截。

macOS 上主流软件要么用 Cocoa 写的、要么基于 Web 技术、要么像 IDEA 这样用 Java 写的。我不知道有没有人做过 Benchmark ,但我很怀疑 Chromium 或者 Java 在不同系统上的内存效率真的会有质的差距。而 Cocoa 这种基础框架,按理说没有 GC 内存效率会更高,而且如果它有内存泄漏问题,那整个系统可能就不是多占用这一点内存的问题了。所以怀疑更多是系统上层服务的调度逻辑过于激进。

Mac 被人诟病体验差,系统 bug 只是一方面,主要还是因为贵。如果 64G 的 Mac 卖今天 16G 的价格,论坛里抱怨的帖子起码能少一半。
wellerman
2023-08-19 00:11:44 +08:00
@GeekSuPro 哈哈,我 Emacs 338MB , java-lsp 1.5G
morgan1freeman
2023-08-21 08:28:53 +08:00
@chevalier 相同的感受,黑苹果 64G 内存,真的是肆无忌惮,3000 块 i9 10900ES + b460 迫击炮 + 64G 内存 吊打一众 白苹果,再爽黑苹果最后几年,等 M 系列二手降价,顺手买一台,然后换块电池,又能打,还便宜
Richared
2023-08-21 15:20:52 +08:00
qsnow6
2023-08-22 21:38:27 +08:00
16G 内存是真的经常爆掉,开个 pycharm 、Datagrip 如果长时间不关就会爆!
在想要不要在家搞台大内存的服务器,远程开发。😞
buludu
2023-08-23 08:36:10 +08:00
@murmur 要背个电脑到处跑,从 32G 的 Win 笔记本换过来的
buludu
2023-08-23 08:37:08 +08:00
@Mogugugugu 我也没想到一个命令行工具占这么多内存,有个命令智能不全功能。Java 写的工具都高。
buludu
2023-08-23 08:39:07 +08:00
@felixcode 那用啥
buludu
2023-08-23 08:40:04 +08:00
@chesha1 我也奇怪,为什么占这么高,微信可能是开了几个腾讯文档之类的窗口
buludu
2023-08-23 08:49:05 +08:00
@123test1010 这么一搞更看不懂了,内存 11G ,实际只占 2.5G ,共享 500M 。。
123test1010
2023-08-23 10:25:58 +08:00
@buludu 这个需要更专业的分享了,建议通过 GPT 搜索相关内存概念以及机制,评论区篇幅有限,大家也只能按照自己的理解去说。说点实际的,mac 只看内存压力就行了,其他方面系统会自动调整内存。像 cleanmymac 这种软件具有内存监测及管理功能(相当于可读可写(编辑结束内存)),反而对 mac 自身内存优化是一种破坏,容易导致各种程序无响应(或者提示内存不足)。他们这种软件就是哄用户玩的,包括柠檬,内存显示还是按照 Windows 的维度设计,毫无意义

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

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

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

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

© 2021 V2EX