Jakieś przyzwoite programatory C #? [Zamknięte]

83

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?

Gareth Simpson
źródło
5
możliwy duplikat What Are Some Good .NET Profilers?
BlueRaja - Danny Pflughoeft
Wiele mówi o SO, że powodem cenzurowania pytania jest to, że „prawdopodobnie będzie ono wymagało debaty”.
Glenn Maynard

Odpowiedzi:

35

Możesz spróbować następujących rzeczy:


Edycja: Nprof został zastąpiony przez SlimTune i działa z aplikacjami .Net 4.0

jfs
źródło
7
Bawiłem się z ProfileSharp. To absolutnie okropne.
Matthew Ruston,
1
nprof to .Net 1.1 tylko myślę. Jeśli możesz skompilować do .Net 1.1, nadal może być przydatne sprofilowanie go, a następnie ponowna kompilacja do .Net 2 w celu wydania. Jednak nie jest to możliwe, jeśli zaczniesz używać funkcji .Net2, takich jak typy ogólne i typy dopuszczające wartość null.
redcalx
1
Zgadzam się z Matthew, ProfileSharp jest okropne, nie udało mu się stworzyć profilu nawet najprostszego exe wiersza poleceń. Nie trać czasu
Michael Dausmann
Wydaje się, że rozwój nprof ostatnio nabrał tempa.
Brian Ortiz
1
Użyłem .Net Memory Profiler, aby znaleźć wyciek pamięci; jest całkiem niezły. Ma moją pieczęć aprobaty!
Cylon Cat
40

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.

AdamSane
źródło
1
Lubię też ANTS. Pochodzi z Redgate.
Marcel
32

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

HullCitySteve
źródło
Nie za darmo w przypadku licencji komercyjnej (ale wciąż tani, 200 USD).
mhenry1384
Tak, wygląda na to, że zmienili licencje na najnowszą wersję i zaczęli pobierać opłaty za użytek komercyjny. Mimo to nadal bardzo go polecam.
HullCitySteve
3
Aktualizacja - wygląda na to, że ponownie zmienili warunki licencji, aby była bezpłatna do użytku komercyjnego dla standardowych aplikacji .NET (ale nie CF ani Silverlight)
HullCitySteve
3
Warunki licencji zmieniły się ponownie w wersji 3.6: jest teraz bezpłatna dla wszystkich platform, w tym CF i Silverlight, z ograniczeniem liczby bibliotek DLL, które mogą być instrumentowane w jednej sesji.
Richard Flamsholt
3
Nie jest już darmowy i został wykupiony przez Telerik :(
pingoo
29

DotTrace z JetBrains jest szeroko stosowany.

Niesamowity NDepend Patricka Smacchii doskonale nadaje się do analizy statycznej.

Leon Bambrick
źródło
1
dotTrace to naprawdę doskonały program do profilowania, niezwykle łatwy w użyciu.
Stefan Monov
dotTrace 3.1 nie działa z .NET 4. Musimy poczekać na dotTrace 4.0.
Bobby Cannon,
1
Jako aktualizacja, zarówno wydajność dotTrace 4, jak i pamięć dotTrace 3.5 obsługują .NET 4.
Jura Gorohovsky
7

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ć?

Will Dean
źródło
7

Używamy profilera Ants tam, gdzie pracuję. Podaje bardzo szczegółowe informacje w prosty sposób.

mbillard
źródło
6

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

Craigger
źródło
2
Czy próbowałeś v4 obu? Teraz jest dużo lepiej :)
thecoop
4

Użyłem AQtime i nigdy mnie nie zawiódł. Jestem pewien, że istnieje wersja próbna.

znak
źródło
AQTime ma ogromną zaletę w porównaniu z ANT, ponieważ obsługuje niezarządzany kod.
Rick Minerich
3

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

Jason Sundram
źródło
2

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.

lomaxx
źródło
2

Miałem szczęście z profilerem pamięci .NET

Lekarz
źródło
2

Profiler EQATEC wykonał tutaj swoją pracę.


źródło
2

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.

David Schmitt
źródło
1

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.

DevelopingChris
źródło
czy możesz podać więcej szczegółów na temat całego MVP? dzięki,
kay.one
MVP otrzymają licencję na produkty redgate za darmo, jest to luka, która pozwala Ci wejść, jeśli masz w zespole osoby, które są MVP, dzięki czemu koszt nie jest problemem.
DevelopingChris,
Czy masz link opisujący tę lukę i jak ją wykorzystać?
Keith Sirmons
1

AQTime (zarówno perf, jak i pamięć) lub ANTS (profiler wydajności v4 lub profiler pamięci v5 beta) tutaj.

Miha Markic
źródło
0

Wczoraj znalazłem .NET Memory Profiler i muszę powiedzieć, że jestem pod wielkim wrażeniem.
Dziś zamówię licencję.

Patrik Svensson
źródło
0

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.

Meta rycerz
źródło
jednym ze sposobów uzyskania dostępu do programu profilującego VS2010 jest po załadowaniu rozwiązania z menu „Debuguj” znalezienie „Rozpocznij analizę wydajności”. Szczegóły dotyczące jego możliwości są dostępne na stronie msdn.microsoft.com/query/…
ShawnFeatherly
0

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?

Za to przysięgam na tę metodę.

Mike Dunlavey
źródło