En Fri, 21 Sep 2007 13:34:40 -0300, Jeroen Hegeman <[EMAIL PROTECTED]> escribi�:
> So the first time around the file gets read in in ~0.1 seconds, the > second time around it needs almost four seconds! As far as I can see > this is related to 'something in memory being copied around' since if > I replace the 'alternative 1' by the 'alternative 2', basically > making sure that my classes are not used, reading time the second > time around drops back to normal (= roughly what it is the first pass). > class ModerateClass: > def __init__(self): > return > def __del__(self): > pass > return > > class HugeClass: > def __init__(self,line): > self.clear() > self.input(line) > return > def __del__(self): > del self.B4v > return > def clear(self): > self.long_classes = {} > self.B4v={} > return Don't use __del__ unless it's absolutely necesary. ModerateClass.__del__ does nothing, but its mere existence does not allow the garbage collector to work efficiently. If you explicitey call clear() from HugeClass, you can avoid using __del__ too. And if B4v is not involved in cycles, clearing it is not even necesary. (BTW, all those return statements are redundant and useless) -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list