[issue14435] Remove special block allocation from floatobject.c

Kristján Valur Jónsson report at bugs.python.org
Thu Mar 29 11:54:10 CEST 2012


New submission from Kristján Valur Jónsson <kristjan at ccpgames.com>:

floatobject.c has its own block allocator.  This appears to be ancient, from before the time when obmalloc.c was invented.
This patch removes this allocator and puts an upper limit on the freelist of floats.  The purpose of this is to reduce memory fragmentation, since blocks used for floats cannot be used for anything else in python.  These blocks tend to stay around for a long time, it is sufficient for one float from each of the 1k blocks to be alive to keep that block present in memory forever.

It is the presence of the fast freelist that is the performance enhancer here, not the fast block allocator.

----------
components: Interpreter Core
files: nofreelist.patch
keywords: patch
messages: 157016
nosy: krisvale
priority: normal
severity: normal
status: open
title: Remove special block allocation from floatobject.c
type: enhancement
versions: Python 3.3
Added file: http://bugs.python.org/file25061/nofreelist.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14435>
_______________________________________


More information about the Python-bugs-list mailing list