CLR via C#読書(1)

CLR via C#で勉強したことのまとめ。途中。

  • Finalizeメソッドが呼ばれるタイミング
    • マネージヒープが世代0で一杯になった時
      • と本には書いてあるけども、正確には世代n(n:0〜)で一杯になったとき?
    • 明示的にコードから呼び出した時
    • Windowsからメモリが足りないと言われた時
    • CLRがAppDomainをアンロードした時
    • CLRが終了する時
  • 世代の進み方
    • その世代のオブジェクトでマネージヒープが一杯一杯にならないと世代が上がらない(らしい?)
      • 以前の認識では、GCが動くたびにその時生き残っていたオブジェクトが常に世代を1つあげるものだと思っていた
      • でもそれだとどれだけ世代が上がるんだ、と。頭悪すぎましたすみません。
  • SecureString
    • 面白そう。[あとで使う]
  • String.Intern / String.IsInterned
    • 同じ文字には同じ参照を返す(適当)
      • IsXXXなのにStringが返る。ちょっと気になる。

GC難しいですGC
Wileyから出ているGarbageCollection読んでちょっと勉強し直してきます。