『Working with Unix Processes』の Processes Are Friendly を読みました
はじめに
Orphaned Processes の続きです。
大事なことのまとめ
Copy-on-Write(以下 CoW)についての説明(Processes Can Fork を読んだときの感想でふれた)。
MRI や Rubinius は CoW をサポートしていない。CoW をサポートするには CoWフレンドリーになるようにメモリ管理をしなければいけない。CoWフレンドリーなのが Ruby EE のメリットの一つ。Ruby 2.0 では CoWフレンドリーなビットマップマーキングを採用した GC が取り込まれる予定だ。
なぜマークアンドスイープは CoWフレンドリーではないのか
マークアンドスイープを採用したGC だと CoWフレンドリーでは無い。なぜなら、同じアドレスを指すプロセスを新しくつくったとしても、オブジェクトを走査してマークするタイミングでオブジェクトに変更がおきて同量のオブジェクトがつくられて、結果的にオブジェクトコピーしてプロセスをつくった場合と同じくらいメモリがつかわれるため。
本文を読んでもわからなかったのでメンバーに教えてもらいました。感謝!
わからなかった単語・熟語
reap a benefit: 恩恵を得る