かなり大きな Silverlight 4 アプリケーションがあります。私たちはアプリケーションのメモリ リークを見つけようとしていますが、これは困難な作業になっています。
元の投稿を見た人のために、これで状況は完全に変わりました!
ANTS メモリ プロファイラが適切なものを表示していないことに気付きました。これは、メモリ リークがマネージ コードではなく、ネイティブ コードにあったためです。ANTS のいくつかの問題を修正しました。これは、マネージ コードのメモリ リークに適したツールです。
それで、このブログを見つけて、
それは素晴らしかった。xPerf と xPerfViewer を使用してネイティブ ヒープを表示し、実際のメモリ リークと思われるものを確認しました。
したがって、次のようなスタック トレースが表示されます。
CCoreServices::Draw
CCoreServices::Tick
CUElement::Render
CUIElement::Render
CUIElement::RenderWithTransform
CUIElement::RenderVisual
CUIElement::RenderChildren
{Repeat of the above in a recursive fashion}
したがって、この「Render」メソッドでは、約 520 バイトのメモリがどこかに割り当てられますが、私が知る限り、それは解放されません。
呼び出されたメソッドまたはクラスも表示されます
SDBitmapCreate
メモリもリークしています。
何かを見つけたようで面白いのですが、何が何だかよくわかりません。
他の提案はありますか?
ありがとう。