Утечки памяти Silverlight

У нас есть довольно большое приложение silverlight 4. Мы находимся в процессе поиска утечек памяти в приложении, и это превратилось в непростую задачу.

Все полностью изменилось с этим, для тех из вас, кто видел исходный пост!

Я понял, что ANTS профайлер памяти не показывал мне то, что нужно. Это произошло потому, что утечка памяти произошла не в управляемом коде, а во встроенном коде. Я исправил некоторые проблемы с ANTS - это хороший инструмент для устранения утечек памяти управляемого кода.

Итак, я нашел этот блог,

http://blogs.msdn.com/b/slperf/archive/2010/08 /19/analyzing-silverlight-memory-usage-part-1-obpting-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

тоже пропускают память.

Интересно, потому что похоже, что я нашел что-то, но я не совсем уверен что.

Есть другие предложения?

Спасибо.

6
задан peter 19 December 2010 в 21:33
поделиться