On Sat, 8 Oct 2011 00:13:40 +0200 Maciej Fijalkowski <fij...@gmail.com> wrote: > On Fri, Oct 7, 2011 at 11:47 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > > On Fri, Oct 7, 2011 at 4:50 PM, Maciej Fijalkowski <fij...@gmail.com> wrote: > >> Hi > >> > >> Can we disable by default disabling the cyclic gc in timeit module? > >> Often posts on pypy-dev or on pypy bugs contain usage of timeit module > >> which might change the performance significantly. A good example is > >> json benchmarks - you would rather not disable cyclic GC when running > >> a web app, so encoding/decoding json in benchmark with the cyclic GC > >> disabled does not make sense. > >> > >> What do you think? > > > > No, it's disabled by default for a reason (to avoid irrelevant noise > > in microbenchmarks), and other cases don't trump those original use > > cases. > > People don't use it only for microbenchmarks though. Also, you can't > call noise a thing that adds something every now and then I think. > > Er. How is disabling the GC for microbenchmarks any good by the way?
In CPython, looking for reference cycles is a parasitic task that interferes with what you are trying to measure. It is not critical in any way, and you can schedule it much less often if it takes too much CPU, without any really adverse consequences. timeit takes the safe way and disables it completely. In PyPy, it doesn't seem gc.disable() should do anything, since you'd lose all automatic memory management if the GC was disabled. Regards Antoine. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com