[Python-Dev] The untuned tunable parameter ARENA_SIZE

INADA Naoki songofacandy at gmail.com
Fri Jun 2 07:56:31 EDT 2017


> I would be curious of another test: use pymalloc for objects larger
> than 512 bytes. For example, allocate up to 4 KB?

Since current pool size is 4KB and there is pool_header in pool,
we can't allocate 4KB block from pool.
And if support 1KB block, only 3KB of 4KB can be actually used.
I think 512 bytes / 4KB (1/8) is good ratio.

Do you mean increase pool size?

How about adding configure option like server-mode?

SMALL_REQUEST_THRESHOLD  1024   // 2x
POOL_SIZE  (16*1024)    // 4x
ARENA_SIZE  (2*1024*1024)   // 8x, and same to huge page size.

>
> In the past, we already changed the maximum size from 256 to 512 to
> support most common Python objects on 64-bit platforms. Since Python
> objects contain many pointers: switching from 32 bit to 64 bit can
> double the size of the object in the worst case.
>

Make sense.


Naoki


More information about the Python-Dev mailing list