• Pablo Galindo's avatar
    bpo-33234 Improve list() pre-sizing for inputs with known lengths (GH-9846) · 372d705d
    Pablo Galindo yazdı
    The list() constructor isn't taking full advantage of known input
    lengths or length hints. This commit makes the constructor
    pre-size and not over-allocate when the input size is known (the
    input collection implements __len__). One on the main advantages is
    that this provides 12% difference in memory savings due to the difference
    between overallocating and allocating exactly the input size.
    
    For efficiency purposes and to avoid a performance regression for small
    generators and collections, the size of the input object is calculated using
    __len__ and not __length_hint__, as the later is considerably slower.
    372d705d
test_list.py 5.84 KB