<div dir="ltr"><div><div><div><div><div><div>Story time.<br></div><div><br>I was able to make a build at work with freelists enabled for iterators in dictobject.c, listobject.c and iterobject.c.  When running this through our application I saw:<br>
</div> 1) When loading several datapoints from database: 0.1% improvement (with a wider-but-forgotten standard deviation).  So, no improvement but no ruined performance either.  Makes sense since this was mostly an I/O bound task.<br>
</div> 2) When parsing in-memory data files: 1.5% improvement.  This is approximately what I was expecting, so far so good!<br><br></div>At this point I decided to run the benchmark suite Antoine pointed me to.  I also realized that I had been testing without some optimizations turned on.  I made two new builds, both with "-O3 -DNDEBUG -march=native" and profile guided optimizations turned on.  I then added a benchmark to explicitly test tight inner loops.  I ran the benchmarks and saw... a 1.02x improvement on the benchmark I made and a 1.04x slow down on two others (nbody, slowunpickle).  I then ran our application again and confirmed that all initial speed ups I saw were now lost in the noise.<br>
<br></div>So, thank you everyone for letting me entertain this idea, but it looks like Raymond's hunch was right. :)<br><br></div>Cheers,<br></div>-Kyle</div>