У нас довольно большое приложение silverlight 4.Мы находимся в процессе поиска утечек памяти в приложении, и это превратилось в непростую задачу.
С этой задачей все изменилось полностью, для тех из вас, кто видел исходный пост!
Я понял, что профилировщик памяти ANTS не показывает мне нужные вещи.Это произошло потому, что утечка памяти была не в управляемом коде, а в собственном коде.Я исправил некоторые проблемы с ANTS - это хороший инструмент для утечек памяти в управляемом коде.
Итак, я нашел этот блог,
http://blogs.msdn.com/b/slperf/archive/2010/08/19/analyzing-silverlight-memory-usage-part-1-obtaining-measurements.aspx
Это было превосходно.Я использовал 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
*У 1021 * тоже течет память.
Интересно, потому что кажется, что я что-то нашел, но я не совсем уверен, что.
Есть еще какие-нибудь предложения?
Спасибо.