Moje Visual Studio (2010 SP1) ma poważny wyciek pamięci i wydaje się, że jest spowodowane przez jedno lub więcej zainstalowanych rozszerzeń.Jak mogę się dowiedzieć, jakie rozszerzenie Visual Studio powoduje wycieki pamięci?
Próbowałem zawęzić to przez włączanie i wyłączanie rozszerzeń i dodatków, ale potrzeba trochę pracy, aby wytworzyć znaczący wyciek, a wyniki nie są całkowicie rozstrzygające. Rzadko trwa to dłużej niż kilka godzin, zanim proces devenv.exe korzysta z pamięci 2 GB i rozpoczyna usuwanie śmieci, co sprawia, że praca z nim jest trudna.
Czy jest jakiś sposób, aby VS emitować informacje o pamięci przydzielonej dla rozszerzeń?
Czy zarządzane rozszerzenia działają we własnym AppDomain? Może to pozwoliłoby mi włączyć niektóre liczniki wydajności, które mogłyby pomóc w zlokalizowaniu problemu.
Coś jeszcze mogę zrobić, aby rozwiązać ten problem, oprócz wyłączania elementów jeden po drugim, dopóki problem nie zniknie?
Czy używasz narzędzi (np .: jetBrains dotTrace, profiler pamięci Scitech, profiler .net clr), aby wyizolować problem? istnieje dobra lista ich tutaj http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers – Maciej
Posiadam licencje zarówno dla narzędzi RedGate, jak i jetBrains, ale nie widzę jak mogą być bardzo przydatne, biorąc pod uwagę, że potrzeba godziny na użycie VS, aby wyciek pamięci urósł do punktu, w którym można zidentyfikować sprawcę. Scitech może być w stanie zrobić coś z natywnym procesem, takim jak devenv, ale nie sądzę, że posiadane przeze mnie narzędzia będą pomocne. –
Aby wyjaśnić, nie sądzę, że wyciek jest "zawsze obecny". Coś, co robię podczas rozwijania wydaje się ostatecznie wyzwalać problem, a po tym momencie VS właśnie zaczyna jeść pamięć w dość szybkim tempie. Jeśli mógłbym dołączyć profiler po tym zdarzeniu, może on faktycznie przynieść użyteczny rezultat. –