虚拟内存有大小限制的,除非专门配置,否则不会无限制增大
(13.29.5 malloc_trim) This function is missing on some platforms: macOS 11.1,…
malloc-trim
好像并不能在所有的系统上用, 那么在 macOS 这样的坑爹系统上有没有其他的替代方案呢? (还是只能够设置一个很小的上限妥协呢? )
症状: 因为启动的时候设置了一个较大的阀值, 如果从零开始配置的话就会看到进程管理器里面的 Emacs 内存暴涨 (up-to 2~3 GB💦), 尽管最终会掉下来, 但是稳定在 1 GB 左右就不会继续掉了, 而 Emacs 中的 Memory Report 总占用在 300MB 左右.
配置文件: (macOS 13.3, emacs-plus@30)
(let ((normal-gc-cons-threshold (* 32 1024 1024))
(init-gc-cons-threshold most-positive-fixnum))
(setq gc-cons-threshold init-gc-cons-threshold)
(add-hook 'emacs-startup-hook
(lambda () (setq gc-cons-threshold normal-gc-cons-threshold))))
目前是把 init-gc-cons-threshold
设成只比 normal-gc-cons-threshold
大一点.
看gcmh作者的说明,其实gs-cons-threshold设置16M就够了,最好不要超过512M