[Python-Dev] Python3 regret about deleting list.sort(cmp=...)
"Martin v. Löwis"
martin at v.loewis.de
Sat Mar 12 23:41:56 CET 2011
More information about the Python-Dev mailing list
Sat Mar 12 23:41:56 CET 2011
- Previous message: [Python-Dev] Python3 regret about deleting list.sort(cmp=...)
- Next message: [Python-Dev] Python3 regret about deleting list.sort(cmp=...)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] Python3 regret about deleting list.sort(cmp=...)
- Next message: [Python-Dev] Python3 regret about deleting list.sort(cmp=...)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list