タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

golangとheapに関するyassのブックマーク (1)

  • Go言語のスタックとヒープ

    GoCon 2013 Autumn で「Go言語のスタックとヒープ」という発表をしました。 資料はこちら: http://goo.gl/s6at62 スライドだけでは分かりにくい部分もあるので、ブロク記事として以下にも記しておきます。(この記事を読めば、スライドは読まなくてOKなはず) スタックとヒープについて 実行時に動的にメモリを確保する領域として、スタックとヒープがある。 スタックメモリは関数のコールスタックを格納していて、ローカル変数、引数、戻り値もここに置かれる。 スタックのPushとPopは高速なので、オブジェクトをスタックメモリに確保するコストは小さい。ただし関数を抜けてスタックがPopされると解放されるので、関数の寿命を超えてオブジェクトは生存できない。 一方のヒープメモリは、コールスタックとは関係ないので、関数スコープに縛られずにオブジェクトを確保しておける。ただし空き領

    Go言語のスタックとヒープ
    yass
    yass 2013/10/15
    " ※C言語などの他の言語で、上記のようなコードを書いてはダメです。ローカル変数のアドレスを返すなんてとんでもない。 ※Go言語では大丈夫です。たまたまではなく、言語仕様として大丈夫です。"
  • 1