{"id":995,"date":"2017-07-24T16:47:53","date_gmt":"2017-07-24T16:47:53","guid":{"rendered":"http:\/\/dlang.org\/blog\/?page_id=995"},"modified":"2021-03-04T13:21:04","modified_gmt":"2021-03-04T13:21:04","slug":"the-gc-series","status":"publish","type":"page","link":"https:\/\/dlang.org\/blog\/the-gc-series\/","title":{"rendered":"The GC Series"},"content":{"rendered":"<h3>GC Fundamentals<\/h3>\n<p><a href=\"https:\/\/dlang.org\/blog\/2017\/03\/20\/dont-fear-the-reaper\/\">Don&#8217;t Fear the Reaper<\/a> &#8212; a basic introduction to the GC, the language features that use it, and simple strategies to mitigate any potential negative impact.<\/p>\n<p><a href=\"https:\/\/dlang.org\/blog\/2017\/06\/16\/life-in-the-fast-lane\/\">Life in the Fast Lane<\/a> &#8212; a basic introduction to avoiding the GC and profiling its usage.<\/p>\n<p><a href=\"https:\/\/dlang.org\/blog\/2017\/07\/07\/go-your-own-way-part-one-the-stack\/\">Go Your Own Way (Part One: The Stack)<\/a> &#8212; using the stack to avoid GC allocations<\/p>\n<p><a href=\"https:\/\/dlang.org\/blog\/2017\/09\/25\/go-your-own-way-part-two-the-heap\/\">Go Your Own Way (Part Two: The Heap)<\/a>\u00a0&#8212; allocating memory from the non-GC heap, slicing it, instantiating object instances from it, and mixing it with GC memory in the same program.<\/p>\n<p><a href=\"https:\/\/dlang.org\/blog\/2021\/03\/04\/symphony-of-destruction-structs-classes-and-the-gc-part-one\/\">Symphony of Destruction: Structs, Classes and the GC (Part One)<\/a> &#8212; a look at how destructors in D play two incompatible roles, and some basic guidelines on how to distinguish between them.<\/p>\n<h3>Tools and Strategies<\/h3>\n<p><a href=\"https:\/\/dlang.org\/blog\/2017\/04\/28\/automem-hands-free-raii-for-d\/\">automem: Hands-Free RAII for D<\/a>\u00a0&#8212;\u00a0<a href=\"https:\/\/github.com\/atilaneves\/automem\">automem<\/a> is a library that provides C++-style smart pointers that integrate with <code>std.experimental.allocator<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GC Fundamentals Don&#8217;t Fear the Reaper &#8212; a basic introduction to the GC, the language features that use it, and simple strategies to mitigate any potential negative impact. Life in the Fast Lane &#8212; a basic introduction to avoiding the GC and profiling its usage. Go Your Own Way (Part One: The Stack) &#8212; using [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/pages\/995"}],"collection":[{"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/comments?post=995"}],"version-history":[{"count":11,"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/pages\/995\/revisions"}],"predecessor-version":[{"id":2801,"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/pages\/995\/revisions\/2801"}],"wp:attachment":[{"href":"https:\/\/dlang.org\/blog\/wp-json\/wp\/v2\/media?parent=995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}