4 ms·
As this doesn't use `__slots__`, every empty Array() will be 176 bytes vs the 56 bytes of [], and incur a dict allocation per array. This is due to classes wit
by lunixbochs 6y ago
As this doesn't use `__slots__`, every empty Array() will be 176 bytes vs the 56 bytes of [], and incur a dict allocation per array.
This is due to classes without `__slots__` gaining a `__dict__` attribute for dynamic attribute assignment.
Currently:
>>> sys.getsizeof([])
56
>>> a = Array()
>>> sys.getsizeof(a)
72
>>> sys.getsizeof(a.__dict__)
104
with `__slots__ = []` in the Array class definition:
>>> a = Array()
>>> sys.getsizeof(a)
56
>>> sys.getsizeof(a.__dict__)
AttributeError: 'Array' object has no attribute '__dict__'