Adding PyGC_CollectIfEnabled() and calling it in Py_Finalize is probably
fine. I don't think the contract of PyGC_Collect itself (or gc.collect()
for that matter) should be changed. You might want to disable GC but
invoke it yourself.

On Mon, May 9, 2016, at 19:13, Łukasz Langa wrote:
> Is this deliberate? Could we change it for 3.6 so PyGC_Collect does take
> `enabled` into account?
> 
> Context: we’re experimenting with disabling the gc entirely for some
> workloads because it doesn’t fare too well with Copy-on-Write on Linux.
> What ends up happening is that disabling the gc actually drops memory
> usage significantly if you’re using hundreds of the same processes on one
> box :-)
> 
> However, because of PyGC_Collect() called in Py_Finalize(), during
> interpreter shutdown the collection is done anyway, Linux does CoW and
> the memory usage spikes. Which is ironic on process shutdown.
> 
> --
> Lukasz Langa | Facebook
> Production Engineer | The Ministry of Silly Walks
> (+1) 650-681-7811
> 
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/benjamin%40python.org
> Email had 1 attachment:
> + signature.asc
>   1k (application/pgp-signature)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to