2012-01-25 4 views
7

のような何かを持っている労働者のループを考えてみましょう:時間がInfのに達すると不変のデータはDにRAMを「焼き付け」しますか?

... 
auto msg = new immutable(DataWrittenMsg)(bytesWritten); 
masterTid.send(msg); 
... 

が、これはゆっくりと、しかし確実に、すべてのRAMを食べるのだろうか?または、未使用の不変データがGCによって収集される可能性がありますか?

(私はTDPL Ch. 13を読んでいると私は一度不変データは、それが未設定の取得ことはできません設定されている印象を受けます?)

答えて

10

いいえ、GCはまだかかわらず、彼らのconst性の、参照されていないオブジェクトをピックアップします。

「一度不変のデータが設定されると、決して解除できない」ということについては、論理的な意味でのみそうです。プログラムのメモリの安全性が損なわれていないと仮定すると、プログラムがアクセスできる不変のヒープ割り当てオブジェクトは、それらのオブジェクトに到達できなくなってもそのアドレスの実際のメモリを再利用することができます。

関連する問題