branch: externals/gcmh commit 80080093c786805b91d6f0766f5754d3f72cd65c Author: Andrea Corallo <andrea_cora...@yahoo.it> Commit: Andrea Corallo <andrea_cora...@yahoo.it>
some minor fixes --- gcmh.el | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gcmh.el b/gcmh.el index 69daea1..041208e 100644 --- a/gcmh.el +++ b/gcmh.el @@ -6,8 +6,8 @@ ;; Package: gcmh ;; Homepage: https://gitlab.com/koral/gcmh ;; Version: 0.1 -;; Package-Requires: -;; Keywords: garbage collector, garbage collection +;; Package-Requires: ((emacs "24")) +;; Keywords: internal ;; This file is not part of GNU Emacs. @@ -25,7 +25,7 @@ ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. ;;; Commentary: -;; Enforce an optimized Garbage Collection strategy to minimize GC +;; Enforce an optimized sneaky Garbage Collection strategy to minimize GC ;; interference with the user activity. ;; A more detailed explanation of the rationale behind this can be found at ;; http://akrl.sdf.org/ @@ -46,6 +46,11 @@ paging." :group 'gcmh :type 'number) +(defcustom gcmh-time-constant 15 + "Idle time to wait in seconds before triggering GC." + :group 'gcmh + :type 'number) + (defcustom gcmh-verbose nil "If t print a message into when garbage collecting." :group 'gcmh @@ -65,10 +70,10 @@ paging." This is to be used with the `pre-command-hook'." (setq gc-cons-threshold gcmh-high-cons-threshold)) -;;;###autoload (define-minor-mode gcmh-mode "Minor mode tweak Garbage Colelction strategy." :lighter " GCMH" + :require 'gcmh :global t (cond (gcmh-mode @@ -79,13 +84,14 @@ This is to be used with the `pre-command-hook'." ;; When idle for 15sec run the GC no matter what. (unless gcmh-timer (setq gcmh-timer - (run-with-idle-timer 15 t + (run-with-idle-timer gcmh-time-constant t (lambda () (if gcmh-verbose (message "Garbage Collector has run for %.06fsec" (gcmh-time (garbage-collect))) (garbage-collect)) (setq gc-cons-threshold gcmh-low-cons-threshold))))) + ;; Release severe GC strategy before the user restart to working (add-hook 'pre-command-hook #'gcmh-set-high-threshold))) (t (progn (setq gc-cons-threshold gcmh-low-cons-threshold)