たぷつきません

おなかがでてきた。もうたぷついてるやん。

メモリリーク

 WPFの3Dレンダリングの機能を使うと、グラフィックボードが貧弱なXpマシンで使用メモリが増え続けるという現象がおきている*1
 Yourkit Profilerを使うと、.NETのオブジェクトの数やメモリ、CLRのメモリは一定しているのに、VMメモリ、ユーザーメモリは増え続ける。WPFDirect3Dのハンドリングに問題があると思われる。
 .NET Framework 3.5 と 3.5 SP1、XPのSP2とSP3の組み合わせを試したが、それぞれ一定してメモリリークは起きていた。リークしないマシンでもVirtualPCを使って動作させるとメモリリークが起きることから、グラボの3D機能が使えないソフトウェアレンダリングしているディスプレイドライバの場合だけ、リークしていないように見える。

追記

 現象を特定することができた。GeometryModel3D.Materialが、VisualBrushの場合に起きる。ImageBrushでは起きない。

*1:グラボが貧弱だと起きるという確証があるわけではない。あくまでも数台のサンプリングでの傾向として。Vistaでは起きていないが、グラボが貧弱なVistaマシンが手元にないだけで起きるのかもしれない……って書いたけど、sugaさんの調査結果によればVirtualPCVista入れて試したらリークしなかったとのこと。Xp固有の問題くさいね。