<div dir="ltr">Here is an interesting read on how Python's garbage-collector, causes Linux's copy-on-write, to become less effective than would otherwise:<div><br></div><div><a href="https://engineering.instagram.com/dismissing-python-garbage-collection-at-instagram-4dca40b29172#.25rzyh6im">https://engineering.instagram.com/dismissing-python-garbage-collection-at-instagram-4dca40b29172#.25rzyh6im</a></div><div><br><div>Essentially it amounts to the GC walking over Python's read-only variables, but still adjusting the reference-counters... thus causing Linux to see that the memory that is backing the Python instance, to be written to.</div><div><br></div><div>Python's cycle-detection could also cause memory-writes due to the mark+sweep job.</div><div><br></div><div>And it also has a generational collection, for short-term vs long-term objects. Adjusting lifetime lengths, would also cause a memory-write.<br></div></div><div><br></div><div><br></div><div><div>Perl also uses reference counting. So I can also see that Perl's reference-counting would cause the references to be written, when a given Perl variable is copied.</div></div><div><br></div><div><br></div><div>The question is... does anyone have any insight into the same CoW failings within the context of Perl 5 ?</div><div><br></div><div><br></div><div>Perl 6 uses a generational collector (does it *also* use reference counting?), so the generational migration would impact CoW. But given the rather smart people working on that project, I can envisage that some solution may eventually get implemented.<br></div></div>