]> git.eshelyaron.com Git - emacs.git/commitdiff
Increase gc-cons-percentage in -batch Emacs
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 21 Jun 2022 13:04:27 +0000 (15:04 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 21 Jun 2022 13:04:38 +0000 (15:04 +0200)
* doc/lispref/os.texi (Batch Mode): Document it.

* src/emacs.c (main): Use a gc-cons-percentage of 1.0 in
noninteractive Emacsen.

doc/lispref/os.texi
etc/NEWS
src/emacs.c

index bc5374f10f2ea6a49ba079b8253067ea22cf27b2..262ef8bbfdea8bbcad7939749a1bf4dd6e90478f 100644 (file)
@@ -2738,6 +2738,12 @@ if it is non-@code{nil}; this can be overridden by binding
 @code{coding-system-for-write} to a coding system of you choice
 (@pxref{Explicit Encoding}).
 
+In batch mode, Emacs will adjust the @code{gc-cons-threshold} variable
+up from a default of @samp{0.1} to @samp{1.0}.  Batch jobs that are
+supposed to run for a long time should adjust the limit back down
+again, because this means that less garbage collection will be
+performed by default (and more memory consumed).
+
 @defvar noninteractive
 This variable is non-@code{nil} when Emacs is running in batch mode.
 @end defvar
index fdc2e99ca46883d803fdfc3912669dc2db536036..cb59d166f78c0e689c0675e81ea6869da9c80329 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -116,6 +116,14 @@ Emacs Sessions" node in the Emacs manual for more details.
 \f
 * Startup Changes in Emacs 29.1
 
++++
+** -batch and -script now adjusts the garbage collection levels.
+These switches now set 'gc-cons-percentage' to 1.0 (up from the
+default of 0.1).  This means that batch processes will typically use
+more memory than before, but use less time doing garbage collection.
+Batch jobs that are supposed to run for a long time should adjust the
+limit back down again.
+
 +++
 ** Emacs can now be used more easily in an executable script.
 If you start an executable script with
index 5098acd7225fa6b2871675875a118481f8cef736..c602157da161029e46d3e0c8e6bc7cbb3d0df709 100644 (file)
@@ -1944,6 +1944,12 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
   if (!initialized)
     syms_of_comp ();
 
+  /* Do less garbage collection in batch mode (since these tend to be
+     more short-lived, and the memory is returned to the OS on exit
+     anyway).  */
+  if (noninteractive)
+    Vgc_cons_percentage = make_float (1.0);
+
   no_loadup
     = argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);