From: Raymond Hettinger Date: Sun, 8 Feb 2004 18:54:37 +0000 (+0000) Subject: SF patch #875689: >100k alloc wasted on startup X-Git-Tag: v2.4a1~849 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b32e640489f179f956437811497b19d2fa3c33f1;p=python SF patch #875689: >100k alloc wasted on startup (Contributed by Mike Pall.) Make sure fill_free_list() is called only once rather than 106 times when pre-allocating small ints. --- diff --git a/Misc/ACKS b/Misc/ACKS index 77c798074b..61b07cba53 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -411,6 +411,7 @@ Jason Orendorff Douglas Orr Denis S. Otkidach Russel Owen +Mike Pall Todd R. Palmer Alexandre Parenteau Dan Parisien diff --git a/Objects/intobject.c b/Objects/intobject.c index 47acbff96d..18624b31ef 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -1064,7 +1064,7 @@ _PyInt_Init(void) int ival; #if NSMALLNEGINTS + NSMALLPOSINTS > 0 for (ival = -NSMALLNEGINTS; ival < NSMALLPOSINTS; ival++) { - if ((free_list = fill_free_list()) == NULL) + if (!free_list && (free_list = fill_free_list()) == NULL) return 0; /* PyObject_New is inlined */ v = free_list;