GNU bug report logs - #61489
[PATCH 1/1] Increase BLOCK_ALIGN from 2¹⁰to 2¹⁵

Previous Next

Package: emacs;

Reported by: Konstantin Kharlamov <Hi-Angel <at> yandex.ru>

Date: Mon, 13 Feb 2023 20:01:02 UTC

Severity: normal

Tags: patch

Merged with 61490

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Konstantin Kharlamov <Hi-Angel <at> yandex.ru>
To: 61489 <at> debbugs.gnu.org
Subject: bug#61489: [PATCH v2] Increase BLOCK_ALIGN from 1024 to 32768
Date: Thu, 16 Feb 2023 18:07:55 +0300
Originally discovered by Tyler Dodge in his article "Significant Garbage
Collection Improvement For Emacs".

While testing this change on Archlinux system with Intel i5-7200U CPU,
average time of garbage collection gets reduced by ≈25%. Other users
report improvements up to 50%. While monitoring PSS of emacs with and
without customizations loaded before and after the patch, no
statistically significant differences were discovered. So overall, this
change is a win.

* src/alloc.c (BLOCK_ALIGN): increase from 1024 to 32768
---

v2: 
    * Richard Stallman: don't use non-ASCII in the description
    * Me: mention the report by Ihor Radchenko where performance
      improved by 50%

 src/alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/alloc.c b/src/alloc.c
index c25e81d1dde..d278b01343d 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1083,7 +1083,7 @@ lisp_free (void *block)
    BLOCK_BYTES and guarantees they are aligned on a BLOCK_ALIGN boundary.  */
 
 /* Byte alignment of storage blocks.  */
-#define BLOCK_ALIGN (1 << 10)
+#define BLOCK_ALIGN (1 << 15)
 verify (POWER_OF_2 (BLOCK_ALIGN));
 
 /* Use aligned_alloc if it or a simple substitute is available.
-- 
2.39.2





This bug report was last modified 2 years and 175 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.