New submission from Kristján Valur Jónsson <krist...@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 <rep...@bugs.python.org>
<http://bugs.python.org/issue14435>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to