kosakiさんが、YLUGのカーネル読書会でglibc mallocについて語られたらしい。 スライド[PPT]はさっそく眺めてみた。dlmallocってこんないろいろ工夫してたのね。 Rubyのメモリ管理も以前にいろいろ試してみたのだが、 結局小さなchunkはmallocですなおに管理するのが一番高速という結果が出たのは これらの工夫が原因なんだろうか。 でも、sweepで一気に解放するから、プレゼンの中で「苦手なパターン」と されているケースのような気がするんだけど。
Googleビデオも公開されているので、ぜひチェックしたい。 ビデオは時間がかかるのが難点なんだが。
私は今まで知らなかったんだけど『ObjectView』という雑誌があって、それのPDF版を(少し遅れて?)公開しているのだそうだ。
で、その第9号[PDF 2.2M]が Ruby特集なのだそうだ。
我らがレベッカたんも登場している(Rubyのことじゃないけど)。
やっぱ、Alanって視点が人と違うよな。
我々が(私が)、今、目の前にあるツールをどう良くして、 自分がどう楽をするかってことを考えてる時に、 数百年後のことを考えている。
"Reinventing Computing"という彼の講演からの抜粋[英語]も興味深い。
ああ、そうか、VCPがCVSへのuploadをサポートしていない時点であきらめてしまったけど、 uploadだけcvs ciを使うという手があったよな。
考えてみれば、StGITを使った今の運用だって、そうしてるんだものな。
現在、私が利用しているStGITと上記のsvk+CVS連携の比較は以下の通り。
ま、結局、svkの操作とStGITの(というかQuiltの)操作のどちらが好みかということだろう。 先にも書いたが、私はStGIT派である。
This work is licensed under a Creative Commons License.
sweepの件は当日もささださんにつっこまれました(^-^<br>当日は、じゃあRubyはささださんが独自アロケータを実装するということでw<br>という方向に流れましたが、よく考えるとmark & sweepなオブジェクトを次々にアクセスするGCが走っている時点でキャッシュミスは笑ってしまうぐらい大々的に発生しているので、いまさらちょっとぐらい増えても誤差ちゃう?という疑念が沸いています。<br>どうなんでしょうねぇ??
そうですねえ。sweep中のfreeにかんしては、キャッシュミスについて考慮する必要はないでしょうね。markにビットマップを使うなどすれば別でしょうが。
キャッシュミスおたくのわたしが来ましたよ。結論を出す前にoprofileでデータを取ってみましょう。<br>CPUを100%使い切った条件でメモリ関係のチューニングを上手にできれば10%くらいは性能向上できるんじゃないかと、根拠なく思いました。
トラックバックさせていただきましたが、Rubyのキャッシュミスを測定しちゃいました。ベンチマークはtest/runner.rbでした。prefetchするだけで結構いけそうな感じです。(レイテンシー激減かな?)