11

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?

+0

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

+0

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. –

+0

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. –

Odpowiedz

1

Zgodnie z JetBrains faq page powinieneś być w stanie dołączyć do już działającego procesu, gdy zaczyna wyświetlać problemy z wyciekiem pamięci. Być może możesz dać temu szansę. Zauważ, że stwierdzi, że musisz używać wersji 5.

+0

Miałem nadzieję, że ktoś powie mi, żebym po prostu uruchomił devenv z przełącznikiem/dumpMemoryStatsOnExit lub coś podobnego, ale myślę, że będę musiał zobaczyć, co tworzy profiler. Dzięki, ale nadal otwarte na każdą opcję, która nie czyni tego dedykowanym zadaniem. –

Powiązane problemy