该不该一直保持一个大的gc-cons-threshold值?

因为对purcell的一个commit的疑问,我看到了这个:

https://github.com/syl20bnr/spacemacs/issues/3011

进而又看到了这个: https://github.com/syl20bnr/spacemacs/issues/4687

所以现在gc-cons-threshold值到底要不要一直保持很大?

确实……

但是我的问题是: 该不该 一直 保持一个比较大的值。 还是说启动后重新把它设小一点好

;; init.el 第一行
(setq gc-cons-threshold most-positive-fixnum)
....

(run-with-idle-timer 37 t #'garbage-collect)
;; 启动结束,放在最后
(setq gc-max (* 500 1024 1024))
(setq gc-min (* 200 1024 1024))

(setq gc-cons-threshold gc-min)

(defun my-minibuffer-setup-hook nil (setq gc-cons-threshold gc-max))
(defun my-minibuffer-exit-hook nil (setq gc-cons-threshold gc-min))

(add-hook 'minibuffer-setup-hook #'my-minibuffer-setup-hook)
(add-hook 'minibuffer-exit-hook #'my-minibuffer-exit-hook)

话说我之前是设置成最大 most-positive-fixnum,最小 500M的,gc的时候完全失去响应。最后只能 kill -9 杀掉。。。

所以还是小一点好。

1 个赞