GoCon 2013 Autumn で「Go言語のスタックとヒープ」という発表をしました。 資料はこちら: http://goo.gl/s6at62 スライドだけでは分かりにくい部分もあるので、ブロク記事として以下にも記しておきます。(この記事を読めば、スライドは読まなくてOKなはず) スタックとヒープについて 実行時に動的にメモリを確保する領域として、スタックとヒープがある。 スタックメモリは関数のコールスタックを格納していて、ローカル変数、引数、戻り値もここに置かれる。 スタックのPushとPopは高速なので、オブジェクトをスタックメモリに確保するコストは小さい。ただし関数を抜けてスタックがPopされると解放されるので、関数の寿命を超えてオブジェクトは生存できない。 一方のヒープメモリは、コールスタックとは関係ないので、関数スコープに縛られずにオブジェクトを確保しておける。ただし空き領
![Go言語のスタックとヒープ](https://cdn-ak-scissors.b.st-hatena.com/image/square/2b99b3a1edfb36298fbfe5c34f2d147bcc36b787/height=288;version=1;width=512/https%3A%2F%2Ffanyv88.com%3A443%2Fhttps%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEjFUhWzGEb_nn-Mxg12E4qTDHayfCfhBQxdCPQH01ETVY0bqmePRKGyBOp_OhyphenhyphenCS4xb8zM4RbwDCM6KG9SLvpoSrlb4LNVnE52cN92t44zcV5D7JMkNpBupbc9jRWpr-RTT3kvNDijXGT5v%2Fw1200-h630-p-k-no-nu%2FUntitled%2B%282%29.png)