From 72ff45f6d583db0395b2b4c29105d5b428a3daec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Raczy=C5=84ski?= Date: Fri, 1 Feb 2019 14:16:40 +0100 Subject: 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 ``` --- pylru.py | 2 ++ 1 file changed, 2 insertions(+) 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 -- cgit v1.2.1