Fuzzyman <[EMAIL PROTECTED]> writes: > We recently had to change an object pipeline from new style classes > to old style. A lot of these objects were being created and the > *extra overhead* of new style classes was killing us. :-)
Can you please expand on this? What extra overhead of new-style classes are you referring to? Memory overhead seems to firmly favor new-style classes, especially for small object. A trivial small-object allocation test such as # After running this, use "top" or "ps" to see the ballpark memory # consumption. Remove "(object)" to measure for old-style class. python -c 'import time class A(object): pass l=[A() for n in xrange(2000000)] time.sleep(100)' shows the Python process growing to 78M with a new-style class and to 354M with an old-style class. And that is without even starting to use actual optimizations, such as using __slots__! Instantiation time difference is less drastic, but still shows significant improvement with the use of new-style classes: 0.27 usec for new-style, 0.40 usec old-style (measured with timeit, subtracted baseline overhead). -- http://mail.python.org/mailman/listinfo/python-list