mirror of
https://github.com/python/cpython
synced 2024-10-09 07:09:53 +00:00
* Moved the responsibility for emptying the previous list from list_fill
to list_init. * Replaced the code in list_extend with the superior code from list_fill. * Eliminated list_fill. Results: * list.extend() no longer creates an intermediate tuple except to handle the special case of x.extend(x). The saves memory and time. * list.extend(x) runs about the same x is a list or tuple, a little faster when x is an iterable not defining __len__, and twice as fast when x is an iterable defining __len__. * the code is about 15 lines shorter and no longer duplicates functionality.
This commit is contained in:
parent
90a39bf12c
commit
fa7b9d8255
|
@ -12,6 +12,11 @@ What's New in Python 2.4 alpha 1?
|
|||
Core and builtins
|
||||
-----------------
|
||||
|
||||
- Optimized list.extend() to save memory and no longer create
|
||||
intermediate sequences. Also, extend() now pre-allocates the
|
||||
needed memory whenever the length of the iterable is known in
|
||||
advance -- this halves the time to extend the list.
|
||||
|
||||
- Optimized list resize operations to make fewer calls to the system
|
||||
realloc(). Significantly speeds up list appends, list pops,
|
||||
list comprehensions, and the list contructor (when the input iterable
|
||||
|
|
Loading…
Reference in a new issue