Potrzebuję profilera C #.
Chociaż nie mam nic przeciwko płaceniu za jeden, coś, co jest bezpłatne lub przynajmniej w wersji próbnej, byłoby idealne, ponieważ złożenie zamówienia zajmuje trochę czasu.
Jakieś zalecenia?
Potrzebuję profilera C #.
Chociaż nie mam nic przeciwko płaceniu za jeden, coś, co jest bezpłatne lub przynajmniej w wersji próbnej, byłoby idealne, ponieważ złożenie zamówienia zajmuje trochę czasu.
Jakieś zalecenia?
Odpowiedzi:
Możesz spróbować następujących rzeczy:
Edycja: Nprof został zastąpiony przez SlimTune i działa z aplikacjami .Net 4.0
Użyłem profilera Ants w dużym projekcie C # półtora roku temu. Naprawdę działał bardzo dobrze jak na swój koszt, a nawet przewyższał kilku droższych konkurentów.
Oblicza koszt z rozdzielczością prawie wiersz po wierszu.
EQATEC profiler jest bardzo dobra i jest całkowicie darmowy. Jest łatwy w konfiguracji i obsłudze i nie wydaje się zbytnio obciążać aplikacji. Właśnie zacząłem go używać dzisiaj i znalazłem już kilka wąskich gardeł, których inaczej bym nie zauważył.
Utrzymuję kompleksową listę programów profilujących dla .NET na SharpToolbox.com.
Znajdziesz tam sugerowane tutaj narzędzia i nie tylko, każde z krótkim opisem tego, co proponuje.
Interesujące jest to, że nikt nie wspomina, że istnieje taki w wyższych wersjach programu Visual Studio - zawsze uważałem, że jest wystarczająco dobry do profilowania wykonywania. Do profilowania pamięci używam Memory Profiler, o którym już wspomniano, ale nie jest tym, co ogólnie określiłbym jako „profiler”.
Jakiego rodzaju profilowanie próbowałeś wykonać?
Używamy profilera Ants tam, gdzie pracuję. Podaje bardzo szczegółowe informacje w prosty sposób.
Używamy .NET Memory Profiler . To trochę brzydkie, ale bardzo przydatne do znajdowania wiszących odniesień.
Początkowo wypróbowałem profiler ANTS firmy Red Gate, który jest bardzo seksowny, ale z punktu widzenia wycieku pamięci jest do bani z następujących powodów:
1) Jest śmiesznie powolny. Wprowadzenie aplikacji w stan umożliwiający rozpoczęcie nagrywania trwało pół godziny (bez czerwonej bramki zajmuje to 20 sekund).
2) Red Gate musi uruchamiać własne narzędzie na swoim własnym narzędziu. Do czasu ukończenia dwóch migawek zużywał 900 MB pamięci! Potem się zawiesił :(
Jednak komponent czasowy Red Gate ANTS był imponujący. Po prostu nie przejmuj się profilerem pamięci, chyba że masz do czynienia z trywialną (niewielką) aplikacją.
Użyłem AQtime i nigdy mnie nie zawiódł. Jestem pewien, że istnieje wersja próbna.
Będę profilerem ANTS drugiej czerwonej bramy . Użyłem go do wyśledzenia naprawdę niepokojących problemów z wydajnością i był bardzo prosty w użyciu (niska krzywa uczenia się) i przedstawił ładne, szczegółowe dane w sposób łatwy do zrozumienia. Cena jest tego warta, ale nie jest darmowa ...
Niesamowity NDepend Patricka Smacchii doskonale nadaje się do analizy statycznej.
Całkowicie poleciłbym NDepend do analizy statycznej, ale ostrzegam, że prawdopodobnie będziesz musiał poświęcić dzień lub dwa, aby faktycznie przeanalizować ciężar informacji, które dostarcza, a także dowiedzieć się, co właściwie oznaczają wszystkie statystyki pod względem Twój kod.
Profiler EQATEC wykonał tutaj swoją pracę.
Obecna wersja SharpDevelop (3.1.1) ma ładny zintegrowany profiler. Jest dość szybki i bardzo dobrze integruje się z IDE SharpDevelop i jego runner NUnit. Wyniki są wyświetlane w elastycznym stylu drzewa / listy (użyj LINQ, aby utworzyć własny wybór). Podwójne kliknięcie wyświetlanej metody powoduje przejście bezpośrednio do kodu źródłowego.
Obecnie ich nie używaj, mój kumpel zachwyca się profilerem Mrówek. Wiem, że to płatny produkt, nie wiem, jak drogi. Jeśli zdarzy ci się obsadzić MVP, możesz to wykorzystać, aby uzyskać licencję za darmo.
AQTime (zarówno perf, jak i pamięć) lub ANTS (profiler wydajności v4 lub profiler pamięci v5 beta) tutaj.
Wczoraj znalazłem .NET Memory Profiler i muszę powiedzieć, że jestem pod wielkim wrażeniem.
Dziś zamówię licencję.
Chociaż profilowanie użycia pamięci nie jest zbyt dobre, profiler zawarty w niektórych wersjach programu Visual Studio bardzo dobrze radzi sobie z profilowaniem szybkości wykonywania.
Jaki jest twój cel?
Czy Twoim celem jest zlokalizowanie określonych instrukcji i z grubsza wyobrażenie o tym, co wpływają na całkowity czas wykonania, abyś mógł znaleźć sposoby na zrobienie ich inaczej?