Chcę użyć profilera pamięci w programie visual studio 2013 ultimate do profilowania aplikacji WPF. Ale wydaje się, że jest problem: Po uruchomieniu profilera nie ma danych dostępnych/pokazanych. używam Windows 8.1 x64VS2013: Program do profilowania pamięci nie wyświetla niczego w konkretnym projekcie.
otrzymuję ten błąd:
DA0002: It appears that the file was collected without properly setting the environment variables with VSPerfCLREnv.cmd. Symbols for managed binaries may not resolve.
nieparzystych rzeczy są: profilowanie CPU pracuje z tego projektu i profilowanie pamięci wydaje się pracować nad innymi projektami (I stworzyliśmy nowy WPF projekt z pustym oknem i przetestował tam profiler pamięci i pokazano dane). Przetestowałem również konkretny projekt na innej maszynie z tym samym wynikiem (nic nie pokazano).
Co również zrobiłem: Użyłem VSPerfCLREnv do ustawienia zmiennych środowiskowych zgodnie z komunikatem o błędzie powyżej. Próbowałem rozwiązanie tego pytania: How do I run the Visual Studio 2012 memory profiler? I'm getting the error DA0002, ale część z VSPerfCmd tak naprawdę nie działa (otrzymałem komunikat, że powinienem użyć VSPerf.exe, ale to też nie działa).
Myślę, że to nie jest problem z VS2013 w ogóle, ale z moim projektem. Wymieniony projekt, w którym występuje ten problem, to aplikacja WPF. Zawiera asynchroniczny serwer gniazd (oparty na SocketAsyncEventArgs
).
Oczyściłem rozwiązanie, ustawiłem debugowanie na x86, usunięto wszystkie nieużywane referencje projektu i ustawiłem docelowy framework z .net4.5 na .net4. Nic się nie zmieniło. Nie mam pojęcia, dlaczego profilowanie pamięci nie działa. Może bufory gniazd są winne tego (ponieważ nie są zarządzane przez .net)?
Po aktualizacji do VS2013 Update 2 profilowanie pamięci działało raz (pokazano niektóre dane), ale po tym wystąpił błąd DA0002. – Rul3r
To bardziej przypomina hazard: czasami profilowanie pamięci działa, czasami nie. Mniej więcej co piąta próba prowadzi do działającego profilu pamięci. Moje rozwiązanie: używam teraz JetBrains dotMemory – Rul3r
Nie znam odpowiedzi na twoje pytanie, ale mogę gorąco polecić ci to narzędzie: http://memprofiler.com/. Niestety jest bezpłatny przez około tydzień użytkowania (nie tydzień od instalacji). –