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 的价格,论坛里抱怨的帖子起码能少一半。