On Wed, 2009-07-22 at 15:03 -0400, Stef Telford wrote: > Oleg Broytmann wrote: > > On Wed, Jul 22, 2009 at 02:26:57PM -0400, Stef Telford wrote: > > > >>>> yes. evals appear to be a 'bad' thing here :\ > >>>> > >>> Well, those evals are in sqlmeta.addColumn and .addJoin methods, so > >>> they > >>> work once for every column in the table, but that's all. After the class > >>> has been created and populated - whatever you do with rows (class > >>> instances) > >>> - those evals are not executed. > >>> > >>> > >> Ah. hrm. *rubs chin* perhaps it's not the evals then. It seems that the > >> instantiations get .. well .. 'slower' over time. > >> > > > > Curiouser and curiouser. IWBN to find where the slowness is *near the > > end* of the loop - i.e. when instantiation becomes really slow. > > > > > It could be purely a 'feeling' .. I don't have any numbers to back it up > and I am not entirely sure -how- to benchmark that. This machine does > have 8gb of ram in it, and a fairly beefy quad core. I have never seen > any process get near memory exhaustion, which I could believe the calls > to 'malloc' could slow down but.. yes.
Python's GC takes time roughly proportional to the number of live objects. The GC is called every 700 allocations (7000, 70000 for older generations), so allocation also takes time proportional to number of live objects. ------------------------------------------------------------------------------ _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss