У нас есть довольно большое приложение 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
тоже пропускают память.
Интересно, потому что похоже, что я нашел что-то, но я не совсем уверен что.
Есть другие предложения?
Спасибо.