.NET Micro Framework でのガベージコレクタ制御
.NET Micro Framework でガベージコレクタがどれだけ制御できるのかについて少しググってみたので,記録.
未だに TinyCLR がどういうスケジューリングでスレッドを走らせるのかイマイチわかっていない.ましてやガベージコレクタがどういうタイミングで呼び出されるのかは,全くわからない.
なので,.NET Micro Framework が組込み向けと謳っていても,開発したシステムで突然GCが動き出して反応が悪くなったりしないかどうかが気になる.
たとえば,空いた時間に積極的にGCを走らせるとかそういうことが出来れば,意図しないタイミングでガベージコレクタに邪魔される可能性が減るのでは無いかと思って調べてみた.
.NET Framework なら System.GC.Collect とかいうメソッドがあるらしいが,Micro Framework の場合は無さそうで,代わり(かどうかは知らないが) Debug.GC というメソッドがあるらしい.
Debugクラスのメソッドを本番で使用するというのは少し引っかかる気がするが,以下の話題ではOutOfMemory例外を避けるためにDebug.GCを使ったという話もあるようなので,うまく使えれば便利かもしれない.