Define __slots__ for CallLater class. This results in a +2x general speedup and the consumed memory is about 1/3:
Define __slots__ for CallLater class.
This results in a +2x general speedup and the consumed memory is about 1/3:

BEFORE

test_cancel                    : time=0.02230 : calls=1 : stdev=0.00000
test_create                    : time=0.80992 : calls=1 : stdev=0.00000
test_reset                     : time=1.60706 : calls=1 : stdev=0.00000
test_run                       : time=0.68646 : calls=1 : stdev=0.00000
test_create (memory usage)     : 174M


AFTER

test_cancel                    : time=0.01742 : calls=1 : stdev=0.00000
test_create                    : time=0.42294 : calls=1 : stdev=0.00000
test_reset                     : time=0.94222 : calls=1 : stdev=0.00000
test_run                       : time=0.65367 : calls=1 : stdev=0.00000
test_create (memory usage)     : 57M



giampaolo/pyftpdlib