feat: improve emacs gc and performance

This commit is contained in:
Swarsel 2024-11-04 01:07:33 +01:00
parent 8782cd7491
commit 202b723e1f
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
3 changed files with 116 additions and 59 deletions

View file

@ -9841,8 +9841,11 @@ Also packed into the hook function is the line =(fset 'epg-wait-for-status 'igno
(lambda () (lambda ()
(progn (progn
;; (setq gc-cons-threshold (* 1000 1000 8) ;; (setq gc-cons-threshold (* 1000 1000 8)
(setq gc-cons-threshold #x40000000 ;; (setq gc-cons-threshold #x40000000
(setq gc-cons-threshold (* 32 1024 1024)
gc-cons-percentage 0.1 gc-cons-percentage 0.1
jit-lock-defer-time 0.05
read-process-output-max (* 1024 1024)
file-name-handler-alist swarsel-file-name-handler-alist file-name-handler-alist swarsel-file-name-handler-alist
vc-handled-backends swarsel-vc-handled-backends) vc-handled-backends swarsel-vc-handled-backends)
(fset 'epg-wait-for-status 'ignore) (fset 'epg-wait-for-status 'ignore)
@ -10451,6 +10454,23 @@ This formats the org code block at =point= in accordance to the =nixpkgs-fmt= fo
(call-interactively 'nixpkgs-fmt-region))))) (call-interactively 'nixpkgs-fmt-region)))))
#+end_src #+end_src
**** Disable garbace collection while minibuffer is active
#+begin_src emacs-lisp
(defun swarsel/minibuffer-setup-hook ()
(setq gc-cons-threshold most-positive-fixnum))
(defun swarsel/minibuffer-exit-hook ()
(setq gc-cons-threshold (* 32 1024 1024)))
(add-hook 'minibuffer-setup-hook #'swarsel/minibuffer-setup-hook)
(add-hook 'minibuffer-exit-hook #'swarsel/minibuffer-exit-hook)
#+end_src
*** Custom Keybindings *** Custom Keybindings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:2b827c27-0de7-45ed-9d9e-6c511e2c6bb5 :CUSTOM_ID: h:2b827c27-0de7-45ed-9d9e-6c511e2c6bb5
@ -10568,8 +10588,14 @@ I also define some keybinds to some combinations directly. Those are used mostly
"<DUMMY-m>" 'swarsel/last-buffer "<DUMMY-m>" 'swarsel/last-buffer
"M-\\" 'indent-region "M-\\" 'indent-region
"C-<f9>" 'my-python-shell-run "C-<f9>" 'my-python-shell-run
"<Paste>" 'yank
"<Cut>" 'kill-region
"<Copy>" 'kill-ring-save
"<undo>" 'evil-undo
"<redo>" 'evil-redo
) )
#+end_src #+end_src
*** Directory setup / File structure *** Directory setup / File structure
:PROPERTIES: :PROPERTIES:
@ -10709,9 +10735,16 @@ Here I set up some things that are too minor to put under other categories.
(setq require-final-newline t) (setq require-final-newline t)
(winner-mode 1) (winner-mode 1)
(setq load-prefer-newer t) (setq load-prefer-newer t)
(setq-default bidi-paragraph-direction 'left-to-right) (setq-default bidi-paragraph-direction 'left-to-right
(setq bidi-inhibit-bpa t) bidi-display-reordering 'left-to-right
bidi-inhibit-bpa t)
(global-so-long-mode) (global-so-long-mode)
(setq process-adaptive-read-buffering nil) ;; not sure if this is a good idea
(setq fast-but-imprecise-scrolling t
redisplay-skip-fontification-on-input t
inhibit-compacting-font-caches t)
(setq idle-update-delay 1.0
which-func-update-delay 1.0)
(setq undo-limit 80000000 (setq undo-limit 80000000
evil-want-fine-undo t evil-want-fine-undo t
auto-save-default t auto-save-default t

View file

@ -10,8 +10,11 @@
(lambda () (lambda ()
(progn (progn
;; (setq gc-cons-threshold (* 1000 1000 8) ;; (setq gc-cons-threshold (* 1000 1000 8)
(setq gc-cons-threshold #x40000000 ;; (setq gc-cons-threshold #x40000000
(setq gc-cons-threshold (* 32 1024 1024)
gc-cons-percentage 0.1 gc-cons-percentage 0.1
jit-lock-defer-time 0.05
read-process-output-max (* 1024 1024)
file-name-handler-alist swarsel-file-name-handler-alist file-name-handler-alist swarsel-file-name-handler-alist
vc-handled-backends swarsel-vc-handled-backends) vc-handled-backends swarsel-vc-handled-backends)
(fset 'epg-wait-for-status 'ignore) (fset 'epg-wait-for-status 'ignore)

View file

@ -292,6 +292,15 @@ create a new one."
(org-babel-mark-block) (org-babel-mark-block)
(call-interactively 'nixpkgs-fmt-region))))) (call-interactively 'nixpkgs-fmt-region)))))
(defun swarsel/minibuffer-setup-hook ()
(setq gc-cons-threshold most-positive-fixnum))
(defun swarsel/minibuffer-exit-hook ()
(setq gc-cons-threshold (* 32 1024 1024)))
(add-hook 'minibuffer-setup-hook #'swarsel/minibuffer-setup-hook)
(add-hook 'minibuffer-exit-hook #'swarsel/minibuffer-exit-hook)
;; Make ESC quit prompts ;; Make ESC quit prompts
(global-set-key (kbd "<escape>") 'keyboard-escape-quit) (global-set-key (kbd "<escape>") 'keyboard-escape-quit)
@ -398,6 +407,11 @@ create a new one."
"<DUMMY-m>" 'swarsel/last-buffer "<DUMMY-m>" 'swarsel/last-buffer
"M-\\" 'indent-region "M-\\" 'indent-region
"C-<f9>" 'my-python-shell-run "C-<f9>" 'my-python-shell-run
"<Paste>" 'yank
"<Cut>" 'kill-region
"<Copy>" 'kill-ring-save
"<undo>" 'evil-undo
"<redo>" 'evil-redo
) )
;; set Nextcloud directory for journals etc. ;; set Nextcloud directory for journals etc.
@ -481,9 +495,16 @@ create a new one."
(setq require-final-newline t) (setq require-final-newline t)
(winner-mode 1) (winner-mode 1)
(setq load-prefer-newer t) (setq load-prefer-newer t)
(setq-default bidi-paragraph-direction 'left-to-right) (setq-default bidi-paragraph-direction 'left-to-right
(setq bidi-inhibit-bpa t) bidi-display-reordering 'left-to-right
bidi-inhibit-bpa t)
(global-so-long-mode) (global-so-long-mode)
(setq process-adaptive-read-buffering nil) ;; not sure if this is a good idea
(setq fast-but-imprecise-scrolling t
redisplay-skip-fontification-on-input t
inhibit-compacting-font-caches t)
(setq idle-update-delay 1.0
which-func-update-delay 1.0)
(setq undo-limit 80000000 (setq undo-limit 80000000
evil-want-fine-undo t evil-want-fine-undo t
auto-save-default t auto-save-default t