タグ

cowに関するissmのブックマーク (2)

  • Perlの変数はCoWで共有されてもいずれCopyされるという話 - heboi blog

    https://gist.github.com/nihen/7085103 http://www.perlmonks.org/?node_id=905667 https://rt.perl.org/rt3//Public/Bug/Display.html?id=119937 http://d.hatena.ne.jp/kazuhooku/20100909/1284005880 大きいマスターデータなどを親プロセスで読み込んでおいて、その後forkし、子プロセスでCoWで共有する、そんな幻想を抱いていた時期が僕にもありました。 PerlのGCのための参照カウンタは、変数の内部にカウンターをもっているため、そのカウンターに増減があるとCoWで共有されていたメモリのうちカウンターと同一のページ内のメモリは文字通りCopyされる。 通常のコード内でそのことに気をつけたとしても、子プロセスが死ぬとき

    Perlの変数はCoWで共有されてもいずれCopyされるという話 - heboi blog
    issm
    issm 2013/10/22
  • CoW 要点まとめ

    CoW とは CoW = Copy-On-Write [ CoW - Wikipedia ] プロセスのコピーを作成 (fork) するとき、書き換えることのないメモリページは、両方のプロセス(元のプロセスと生成されたプロセス)で共用し、書き換える可能性のあるメモリページは、新たなメモリページを割り当ててコピーを作成する 鉄則 fork するプロセスを生成する場合、親子間でメモリ共有した方が良い forkする前に確保したメモリ領域は子プロセスとの間で共有される 共有されたメモリ領域に対して書き込みを行うと共有は解除(コピー)される forkした後に確保したメモリ領域は子プロセスごとに確保される(共有されない) どのプロセスでも同じように参照するだけの(書き換えない)データは、fork前に確保して共有した方が全体でのメモリ使用量を小さく保てる。つまり、fork 数を多くしたりできる。そして、

    CoW 要点まとめ
  • 1