diff options
author | Marcin RaczyĆski <marc1n@users.noreply.github.com> | 2019-02-01 14:16:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-01 14:16:40 +0100 |
commit | 72ff45f6d583db0395b2b4c29105d5b428a3daec (patch) | |
tree | a888150e645f25cf7f1adbd247e75f47390bc338 | |
parent | 59e4ba3ba617b1c719a1d91f99509c2ddda531c5 (diff) | |
download | pylru-72ff45f6d583db0395b2b4c29105d5b428a3daec.tar.gz |
Minimize memory consuption of _dlnode
Added `__slots__` do `_dlnode` class (which saves 88 bytes per one object).
Before this change, each _dlnode () object was consuming 168 bytes:
```python
from sys import getsizeof
d = _dlnode()
d.next = d.prev = d.key = d.value = None
assert getsizeof(d) + getsizeof(d.__dict__) == 168
```
After this change each _dlnode () object is consuming 80 bytes:
```python
from sys import getsizeof
d = _dlnode()
d.next = d.prev = d.key = d.value = None
assert getsizeof(d) == 80
```
-rw-r--r-- | pylru.py | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -39,6 +39,8 @@ else: # Class for the node objects. class _dlnode(object): + __slots__ = ('empty', 'next', 'prev', 'key', 'value') + def __init__(self): self.empty = True |