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?



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


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.


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


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.


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



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


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.


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


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.



2

Profiler EQATEC wykonał tutaj swoją pracę.


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.


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.


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.



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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.