[Top][All Lists]

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

Re: Lisp_Marker size on 32bit systems

From: Paul Eggert
Subject: Re: Lisp_Marker size on 32bit systems
Date: Fri, 7 Sep 2018 14:03:44 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

Stefan Monnier wrote:

I still wonder why it would be slower at all.

My guess is cache effects. My processor has a cache line size of 64 bytes, so if objects are allocated in 32-byte chunks they won't straddle cache boundaries and code will be less likely to thrash the cache. I ran this benchmark in the 'lisp' subdirectory:

EMACSLOADPATH= perf stat -dd '../src/emacs' -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' -f batch-byte-compile org/org.el

and am attaching the results for the 24-bit allocation (a bit slower) and the 32-bit allocation (a bit faster), and they are in line with this guess.

Maybe we should be using 4 mark bits instead of 3?
On 32bit systems, both cons cells and float cells use 8 bytes each, so
aligning on multiples of 16 would double their memory use.

We'd use two tags for both conses and float cells, so that shouldn't be a 

it's not clear
what the extra tags would be useful for.

Presumably to help performance elsewhere. Admittedly I'm blue-skying a bit here.

Attachment: perf-stat-emacs-24.txt
Description: Text document

Attachment: perf-stat-emacs-32.txt
Description: Text document

reply via email to

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