From: Haruyasu Ueda (HAL) Date: 1998-07-14T17:09:25+09:00 Subject: [ruby-list:8734] Re: [BUG] Segmentation fault 上田@富士通研と申します。 ま> とはいえ,現状でもGCのための時間はわずかなものですから,メモ ま> リとの兼ね合いを考えるとGCをケチるよりも,少々多めにGCした方 ま> が結局は効率が良いようにも思えてきました. そうでしょうね。 仮想メモリがこれだけ普及した現在でも、GCは結局のところ、どうにかして 「実メモリ」を効率的に利用するために行なうわけですよね。 例えば、ディスクのアクセスが起きると、メモリアクセスとは比べ物にならな いほどの時間がかかるので、SWAP または ページアウトするほどのサイズのメ モリをとらないようにGCすることに意味があります。 また、ruby が GCの時にcompaction をかけているかどうか知らないのですが、 compaction をかけると page-fault や cache ミスが減って、極端にスピード が速くなることがあると聞いたことがあります。 ま> |matz@netlab.co.jpさん(07月14日14時): ま> |matz>>あの件については悩んでまして,個人的にはこーゆーことはユーザ ま> |matz>>が指定するのではなく,GCがアタマ良くなって対応すべきではない ま> |matz>>かというのが私の考えです. ま> | ま> |理想的なGCですね。 というわけで、OS依存になってしまう危険が高いのですが、実メモリをいくつ 積んでいるかとか、どのくらいページフォールトが起きているか(別のプロセ スが多かったりメモリを消費している場合に対応)を参考にしてGCをすると 「速い」GCになるような気がします。 # その程度のことなら誰かが論文を書いているかな? --HAL