[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Larger GC thresholds for non-interactive Emacs

From: Stefan Monnier
Subject: Re: Larger GC thresholds for non-interactive Emacs
Date: Fri, 17 Jun 2022 13:48:46 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

> rm lisp/*/*.elc
> time make -j32

IIRC this test can give surprising results because it's strongly
affected by the time when the byte-compiler files get compiled which is
somewhat arbitrary.

> goes from 29s to 14s.


Here are the results of a similar test where I tried to avoid the above
problem by also removing src/boostrap-emacs (and I also rm'd
lisp/loaddefs.el for good measure tho it was probably not a great idea),
and I used

    BYTE_COMPILE_EXTRA_FLAGS="--eval '(setq gc-cons-percentage $FOO)'":

make -j24 FOO=0.1    1338.52s user 60.95s system 1256% cpu 1:51.42 total
make -j24 FOO=0.1    1338.36s user 60.60s system 1252% cpu 1:51.65 total
make -j24 FOO=0.1    1339.53s user 60.08s system 1252% cpu 1:51.76 total
make -j24 FOO=0.2    1266.54s user 59.75s system 1264% cpu 1:44.92 total
make -j24 FOO=0.2    1269.17s user 60.18s system 1256% cpu 1:45.83 total
make -j24 FOO=0.2    1266.10s user 60.42s system 1258% cpu 1:45.43 total
make -j24 FOO=0.3    1200.06s user 60.24s system 1251% cpu 1:40.73 total
make -j24 FOO=0.3    1198.80s user 60.06s system 1254% cpu 1:40.39 total
make -j24 FOO=0.3    1202.49s user 59.60s system 1252% cpu 1:40.80 total
make -j24 FOO=0.4    1134.26s user 59.75s system 1233% cpu 1:36.81 total
make -j24 FOO=0.4    1133.11s user 60.07s system 1226% cpu 1:37.25 total
make -j24 FOO=0.4    1132.18s user 59.94s system 1226% cpu 1:37.18 total
make -j24 FOO=0.5    1069.59s user 59.70s system 1211% cpu 1:33.22 total
make -j24 FOO=0.5    1070.84s user 60.06s system 1211% cpu 1:33.34 total
make -j24 FOO=0.5    1070.93s user 59.86s system 1210% cpu 1:33.43 total
make -j24 FOO=1.0     845.92s user 61.24s system 1126% cpu 1:20.55 total
make -j24 FOO=1.0     847.92s user 61.82s system 1130% cpu 1:20.46 total
make -j24 FOO=1.0     846.59s user 61.46s system 1133% cpu 1:20.10 total
make -j24 FOO=2.0     678.14s user 68.64s system 1044% cpu 1:11.52 total
make -j24 FOO=2.0     678.04s user 69.19s system 1042% cpu 1:11.64 total
make -j24 FOO=2.0     677.66s user 68.24s system 1041% cpu 1:11.59 total
make -j24 FOO=3.0     677.50s user 69.38s system 1047% cpu 1:11.28 total
make -j24 FOO=3.0     677.42s user 68.43s system 1047% cpu 1:11.19 total
make -j24 FOO=3.0     677.98s user 69.10s system 1044% cpu 1:11.50 total
make -j24 FOO=4.0     677.43s user 68.58s system 1051% cpu 1:10.96 total
make -j24 FOO=4.0     677.09s user 68.49s system 1056% cpu 1:10.57 total
make -j24 FOO=4.0     677.60s user 69.23s system 1049% cpu 1:11.17 total
make -j24 FOO=5.0     677.22s user 68.90s system 1043% cpu 1:11.52 total
make -j24 FOO=5.0     677.47s user 68.91s system 1044% cpu 1:11.49 total
make -j24 FOO=5.0     677.13s user 67.98s system 1049% cpu 1:10.98 total
make -j24 FOO=7.0     678.21s user 68.57s system 1044% cpu 1:11.52 total
make -j24 FOO=7.0     677.48s user 68.50s system 1044% cpu 1:11.42 total
make -j24 FOO=7.0     677.95s user 68.25s system 1050% cpu 1:11.00 total
make -j24 FOO=10.0    677.30s user 69.52s system 1045% cpu 1:11.45 total
make -j24 FOO=10.0    678.18s user 68.55s system 1042% cpu 1:11.62 total
make -j24 FOO=10.0    678.97s user 68.45s system 1043% cpu 1:11.64 total
make -j24 FOO=20.0    677.99s user 68.42s system 1041% cpu 1:11.67 total
make -j24 FOO=20.0    677.69s user 69.31s system 1046% cpu 1:11.36 total
make -j24 FOO=20.0    677.89s user 68.70s system 1045% cpu 1:11.39 total

Clearly for this test, the default (0.1) results in too low a threshold
for best performance and thus too much time spent in the GC.  We reach
a plateau around percentage=2.0.

This suggests that for batch jobs maybe we should bump up
`gc-cons-percentage` from 0.1 to something like 1.0 or 2.0.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]