Tweak GC settings, particularly for org & lsp

These two modes are particularly expensive. This needs more
testing.
This commit is contained in:
Henrik Lissner 2020-05-12 19:59:14 -04:00
parent 82ddc86335
commit 717d53c666
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
3 changed files with 16 additions and 6 deletions

View file

@ -462,6 +462,12 @@ relative to `org-directory', unless it is an absolute path."
;; Open directory links in dired
(add-to-list 'org-file-apps '(directory . emacs))
;; HACK Org is known to use a lot of unicode symbols (and large org files tend
;; to be especially memory hungry). Compounded with
;; `inhibit-compacting-font-caches' being non-nil, org needs more memory
;; to be performant.
(setq-hook! 'org-mode-hook gcmh-high-cons-threshold (* 2 gcmh-high-cons-threshold))
;; When you create a sparse tree and `org-indent-mode' is enabled, the
;; highlighting destroys the invisibility added by `org-indent-mode'.
;; Therefore, don't highlight when creating a sparse tree.

View file

@ -91,6 +91,10 @@ This also logs the resolved project root, if found, so we know where we are."
;; development builds of Emacs 27 and above
(or (not (boundp 'read-process-output-max))
(setq-local read-process-output-max (* 1024 1024)))
;; REVIEW LSP causes a lot of allocations, with or without Emacs 27+'s
;; native JSON library, so we up the GC threshold to stave off
;; GC-induced slowdowns/freezes.
(setq-local gcmh-high-cons-threshold (* 2 gcmh-high-cons-threshold))
(prog1 (lsp-mode 1)
(setq-local lsp-buffer-uri (lsp--buffer-uri))
;; Announce what project root we're using, for diagnostic purposes