2013-06-19 4 views
6

GC.disableがパフォーマンスを低下させるような状況はありますか?メモリを交換するのではなく、実際のRAMを使用している限り、それは問題ありませんか?GC.disableのパフォーマンス上の短所はありますか?

私はMRIのRuby 2.0を使用していて、私の知る限り、それは64ビットだし、64ビットのUbuntuを使用して:

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] 

Linux [redacted] 3.2.0-43-generiC#68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 
+1

あなたのアプリケーションに依存していると推測します。パフォーマンステストとメモリプロファイリングを有効にしたり無効にしたりして、gcを有効にしないと – jethroo

答えて

1

GC.disableは、ガベージコレクションを無効にします。 rubyのような言語は、Cとは異なり、メモリのデアロケータを手動で呼び出さないため、ガベージコレクションなしでメモリを解放する方法はありません。

はい、パフォーマンスが低下します。最終的には、文字列のようなオブジェクトが作成され続け、決してクリーンアップされないので、メモリ不足になります。使用するAPIの内部機構がオブジェクトを生成する可能性があるため、責任を負うことさえできません。

問題をよりよく理解することなく、これは残念ながら私が提供できる最高のものです。

関連する問題