17/04/16 20:38:49.89 EJt90aDw.net
>>904,905,907,908
教えてくれて、ありがとう。
自分も MSDN の文章を読んだりしてみました。
斜め読みだから読み落としてる可能性も高くそうしたらごめんなさい。
[一般的定義]
・GC は概要として不要になったメモリを解放する機能のこと
・一般的な挙動として、メモリ確保と GC は別物
[CLRの仕様]
・メモリの確保も解放も GC の機能の内
・確保されたメモリは初期化されている
[CLRの実装]
・GC 時にメモリを初期化してるっぽい
ふつう、挙動を考える際には仕様を元にすると思うから
「GC時(正確にはメモリの解放時)にはメモリの 0 クリアは期待しない/できない」と理解してよさそうな気がする。
>>895 の「GCで大量にゼロクリアが必要にはならない」が「GC時に 0 クリアしている訳ではない」との意味であれば
仕様としては正しいことから一般論としても正しい。
ただ、実際にはやってくれているけど、それは仕様に基づいているわけではないからいつ改変されるか分からないアテには出来ないもの、と理解しました。
自分もよくやるんですけどね。仕様にはないけど自分が考える安全のための後始末とか。