Am 12.03.11 16:58, schrieb Nick Coghlan: > On Sat, Mar 12, 2011 at 4:50 PM, Reid Kleckner<reid.kleckner at gmail.com> wrote: >> They should be able to use a slotted cmp_to_key style class: >> http://docs.python.org/howto/sorting.html >> >> That will allocate 1 Python object with no dict per key, but that >> might not be good enough. > > Tuples are already slotted, so that isn't likely to help in this case. Why not? IIUC, the current key function creates three objects: the tuple, the short string, and the int. With the class class cmp_to_key: __slots__=['obj'] def __init__(self, obj): self.obj = obj def __lt__(self): ... you would only create a single object, so you save the string and the integer. In addition, on a 64-bit system, the size of a cmp_to_key instance is 56 bytes, whereas a two-tuple is 72 bytes, so you also save 16 bytes per object. Whether that would already create a sufficient reduction for the case at hand, I don't know. Regards, Martin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4