{"id":65,"date":"2008-02-05T16:57:00","date_gmt":"2008-02-05T22:57:00","guid":{"rendered":"http:\/\/www.philhassey.com\/blog\/2008\/02\/05\/64k-tinypy-garbage-collection-is-tough\/"},"modified":"2008-02-19T01:13:31","modified_gmt":"2008-02-19T07:13:31","slug":"64k-tinypy-garbage-collection-is-tough","status":"publish","type":"post","link":"https:\/\/www.philhassey.com\/blog\/2008\/02\/05\/64k-tinypy-garbage-collection-is-tough\/","title":{"rendered":"64k tinypy &#8211; garbage collection is tough"},"content":{"rendered":"<p>For giggles I tried to write a garbage collector to replace libgc in tinypy.  I tried doing a tri-color incremental collector.  I couldn&#8217;t get it to work, so I ended up switching it to be more of a tri-color mark and sweep collector.<\/p>\n<p>The result of my mark and sweep collector was a 40% reduction in speed.  I&#8217;m guessing ol&#8217; libgc was designed with a bit more cleverness than mine \ud83d\ude09  Anyway, for now I&#8217;ve moved my &#8220;tgc&#8221; development into a branch of tinypy svn:\/\/www.imitationpickles.org\/tinypy\/branches\/tgc if you want to see it in action.<\/p>\n<p>Stuff to read: <a href=\"http:\/\/www.memorymanagement.org\/articles\/recycle.html\">Memory Management Reference<\/a> and <a href=\"http:\/\/www.hpl.hp.com\/personal\/Hans_Boehm\/gc\/\">libgc<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For giggles I tried to write a garbage collector to replace libgc in tinypy. I tried doing a tri-color incremental collector. I couldn&#8217;t get it to work, so I ended up switching it to be more of a tri-color mark and sweep collector. The result of my mark and sweep collector was a 40% reduction [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,6,2,32],"tags":[],"class_list":["post-65","post","type-post","status-publish","format-standard","hentry","category-crazy","category-development","category-python","category-tinypy"],"_links":{"self":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/65","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":0,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/65\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/media?parent=65"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/categories?post=65"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/tags?post=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}