News for hackers. Stuff that matters.
Re:Zed, a collaborative code editor, is now open source by natrys on Thursday January 25, 2024 @04:53AM (#39127859)
The thing about gc-cons-threshold is that, too low a value and it will collect garbage too frequently. While a high value will drastically reduce frequency, but then GC pause will be big and you will likely feel whole system freeze and stutter when it happens. For me, 1GB is too high because I sorta notice the pause, I set it to 32MB but completely disable GC when minibuffer is active:

    (defun my-minibuffer-setup-hook ()
      (setq gc-cons-threshold most-positive-fixnum))

    (defun my-minibuffer-exit-hook ()
      (setq gc-cons-threshold (* 32 1024 1024)))

    (add-hook 'minibuffer-setup-hook #'my-minibuffer-setup-hook)
    (add-hook 'minibuffer-exit-hook #'my-minibuffer-exit-hook)
Eli Zaretskii (current Emacs maintainer) also thinks 1GB is too high, though for somewhat different reason:

https://old.reddit.com/r/emacs/comments/bg85qm/garbage_colle...

Here is an interesting optimisation that was merged in master, but didn't make the cut for 29 in time. I thought it improved snappiness:

https://tdodge.consulting/blog/living-the-emacs-garbage-coll...

---

Anyway, I also have these in my init (I nicked these from Doom which I don't use but they have done a lot of work to dive deep into these things, mostly around what improves start up but the following might help in general):

    ;; if you don't use RTL ever, this could improve perf
    (setq-default bidi-display-reordering 'left-to-right
                  bidi-paragraph-direction 'left-to-right
                  bidi-inhibit-bpa t)

    ;; improves terminal emulator (vterm/eat) throughput
    (setq read-process-output-max (* 2 1024 1024)
          process-adaptive-read-buffering nil)

    (setq fast-but-imprecise-scrolling t
          redisplay-skip-fontification-on-input t
          inhibit-compacting-font-caches t)

    (setq idle-update-delay 1.0)
Re:Zed, a collaborative code editor, is now open source by benreesman on Thursday January 25, 2024 @07:16AM (#39128722)
I’m doing different heap sizes during package load, but I don’t have the mini buffer hook and in retrospect, I feel dumb.

If I do inline attribution you mind if I borrow that under MIT?

Re:Zed, a collaborative code editor, is now open source by natrys on Thursday January 25, 2024 @07:48AM (#39129001)
Go ahead. Though I don't think attribution is even necessary for something I myself may have borrowed from somewhere.