From 2d296235ca036b5aed7115604ad13b0507901dcc Mon Sep 17 00:00:00 2001 From: James Cherti <60946298+jamescherti@users.noreply.github.com> Date: Wed, 19 Feb 2025 10:28:05 -0500 Subject: [PATCH] Add minimal-emacs-optimize-startup-gc --- early-init.el | 16 +++++++++++----- init.el | 4 +--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/early-init.el b/early-init.el index 85cdb06..b9f656f 100644 --- a/early-init.el +++ b/early-init.el @@ -38,6 +38,11 @@ turned on.") (defvar minimal-emacs-gc-cons-threshold (* 16 1024 1024) "The value of `gc-cons-threshold' after Emacs startup.") +(defvar minimal-emacs-optimize-startup-gc t + "If non-nil, increase `gc-cons-threshold' during startup to reduce pauses. +After Emacs finishes loading, `gc-cons-threshold' is restored to the value +stored in `minimal-emacs--restore-gc-cons-threshold'.") + (defvar minimal-emacs-package-initialize-and-refresh t "Whether to automatically initialize and refresh packages. When set to non-nil, Emacs will automatically call `package-initialize' and @@ -87,12 +92,13 @@ minimalistic appearance during startup.") ;; Garbage collection significantly affects startup times. This setting delays ;; garbage collection during startup but will be reset later. -(setq gc-cons-threshold most-positive-fixnum) +(when minimal-emacs-optimize-startup-gc + (setq gc-cons-threshold most-positive-fixnum) -(defun minimal-emacs--restore-gc-cons-threshold () - "Restore `minimal-emacs-gc-cons-threshold'." - (setq gc-cons-threshold minimal-emacs-gc-cons-threshold)) -(add-hook 'emacs-startup-hook #'minimal-emacs--restore-gc-cons-threshold 105) + (defun minimal-emacs--restore-gc-cons-threshold () + "Restore `minimal-emacs-gc-cons-threshold'." + (setq gc-cons-threshold minimal-emacs-gc-cons-threshold)) + (add-hook 'emacs-startup-hook #'minimal-emacs--restore-gc-cons-threshold 105)) ;;; Misc diff --git a/init.el b/init.el index 1df8b93..8b9b90a 100644 --- a/init.el +++ b/init.el @@ -94,9 +94,7 @@ (setq whitespace-line-column nil) ; whitespace-mode ;; I reduced the default value of 9 to simplify the font-lock keyword, -;; aiming to improve performance. This package helps differentiate -;; nested delimiter pairs, particularly in languages with heavy use of -;; parentheses. +;; aiming to improve performance. (setq rainbow-delimiters-max-face-count 5) ;; Can be activated with `display-line-numbers-mode'