Larry Hastings' Gilectomy also moved the reference counter into a separated memory block, no? (grouping all refcounts into large memory blocks if I understood correctly.)
https://github.com/larryhastings/gilectomy Victor 2017-01-20 13:40 GMT+01:00 Christian Heimes <christ...@python.org>: > On 2017-01-20 13:15, INADA Naoki wrote: >>> >>> "this script counts static memory usage. It doesn’t care about dynamic >>> memory usage of processing real request" >>> >>> You may be trying to optimize something which is only a very small >>> fraction of your actual memory footprint. That said, the marshal >>> module could certainly try to intern some tuples and other immutable >>> structures. >>> >> >> Yes. I hadn't think static memory footprint is so important. >> >> But Instagram tried to increase CoW efficiency of prefork application, >> and got some success about memory usage and CPU throughput. >> I surprised about it because prefork only shares static memory footprint. >> >> Maybe, sharing some tuples which code object has may increase cache >> efficiency. >> I'll try run pyperformance with the marshal patch. > > IIRC Thomas Wouters (?) has been working on a patch to move the ref > counter out of the PyObject struct and into a dedicated memory area. He > proposed the idea to improve cache affinity, reduce cache evictions and > to make CoW more efficient. Especially modern ccNUMA machines with > multiple processors could benefit from the improvement, but also single > processor/multi core machines. > > Christian > > _______________________________________________ > 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/victor.stinner%40gmail.com _______________________________________________ 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