summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin RaczyƄski <marc1n@users.noreply.github.com>2019-02-01 14:16:40 +0100
committerGitHub <noreply@github.com>2019-02-01 14:16:40 +0100
commit72ff45f6d583db0395b2b4c29105d5b428a3daec (patch)
treea888150e645f25cf7f1adbd247e75f47390bc338
parent59e4ba3ba617b1c719a1d91f99509c2ddda531c5 (diff)
downloadpylru-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.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/pylru.py b/pylru.py
index c631e27..b3c321a 100644
--- a/pylru.py
+++ b/pylru.py
@@ -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