emacs-devel
[Top][All Lists]
Advanced

[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 12:04:16 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 09/07/2018 05:16 AM, Stefan Monnier wrote:
Where does this 20% slow down come from?

Ha! It was because the 16-byte alignment caused pure space to overflow, which disabled GC. No wonder there was such a big performance difference.

I fixed that, and now the patch to shrink marker allocations from 32 to 24 bytes on x86 causes my standard benchmark (make compile-always) to run only 1.0% slower, which is more reasonable. A microbenchmark of running (make-marker) over and over again for 10,000,000 times runs 36% slower (815 vs 597 ns for a single call). So it still looks like we should be following GCC's max_align_t hint and using 16-byte alignment on x86, even though this wastes memory.

Maybe we should be using 4 mark bits instead of 3?




reply via email to

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