タグ

ブックマーク / sakaia.hatenadiary.org (1)

  • Erlang VM - つれづれ日記

    Erlangの軽量プロセスが軽いというので、ちょっと眺めている。 Erlangは、BEAMという仮想機械で動作する。BEAMのソースコードは、erts/emulator/beam以下にある。コンパイルは、erlcコマンドで、.erlから.beamに変換することにより行う。 さて、軽量プロセスってふと思えば、スレッドのことである。しかし、それでも309ワード(1236バイト)というのはすごい(うちヒープのサイズはデフォルト233ワードらしい)。さらに、ネイティブスレッドではなくグリーンスレッドなので、メモリ消費が少ない。軽量プロセスは、spawnの延長で呼ばれるerl_create_process関数で起動している。やっていることは、メモリを取得して、プロセス構造体を定義して、それをrunq(add2runq)につないで終了となっている。これしか作っていないのだから、プロセスの生成は早くて当

    Erlang VM - つれづれ日記
    weed_7777
    weed_7777 2015/08/28
  • 1