On Jun 24, 2013, at 4:07 AM, Victor Stinner <victor.stinner@gmail.com> wrote:

">

(original) (raw)

On Mon, Jun 24, 2013 at 7:47 PM, Raymond Hettinger <raymond.hettinger@gmail.com> wrote:



On Jun 24, 2013, at 4:07 AM, Victor Stinner <victor.stinner@gmail.com> wrote:

Out of curiosity, do you know (remember) how was the number 62 chosen?

Is it a compromise between memory usage and performances? 62 is

surprising because it is not a power of two :-)


Is it to just have 64 (2+62) pointers in the structure?


Yes, the goal was to have the struct size be an exact multiple
of the cache line length (always a power-of-two, typically 64 bytes).
What was different then is that deques weren't indexable.

When indexing was added, the size of 62 became an�
unfavorable�choice because it made the division and�modulo�
calculation�in deque\_index() slower than�for a power of two.

A-ha! Finally an explanation of the change. It makes intuitive sense now. I think the general feeling is that folks overreacted (perhaps confused by your silence) and that the reversal will be rolled back. Benjamin?


--
--Guido van Rossum (python.org/~guido)