2009-02-21 12 views
6

Microsoft tworzy ten program o nazwie "Visual Studio 2008 Professional". Zauważyłem, że nie istnieje profiler wydajności aplikacji lub coś podobnego, co sprawia, że ​​nie wydaje mi się to tak "profesjonalne".Jak wykonać profilowanie w Visual Studio 2008 "Pro"

Jeśli firma Microsoft nie uwzględnia profilera, jakie są opcje stron trzecich dotyczące profilowania czasu w programie Visual Studio 2008? Wolny byłby lepszy, ponieważ jest to dla studentów uni: P

Odpowiedz

4

Osobiście używam profilera Red Gate.

Inni przysięgają na JetBrains.

Te wydają się być opcjami i nie ma między nimi wiele.

0

Używam dotTrace JetBrain i działa całkiem dobrze.

3

używam JetBrains dotTrace profiler. To jest komercyjny profiler. (Pełne ujawnienie: I otrzymać bezpłatną licencję jako MVP To został okazała się bardzo przydatna, choć.).

Istnieje również wolne CLR Profiler for .NET 2.0 i an article explaining how to use it.

+1

pamiętać, że bezpłatny jeden jest rzeczywiście bardzo dobre do śledzenia pamięci * * przydziału, ale prostej analizy perf to szlaki inne systemy. Żadne darmowe, które znam, nie wspierają profilowania w trybie mieszanym ani pobierania próbek, a nie instrumentacji. AQTime i system Team jeden to robią – ShuggyCoUk

+0

Właśnie wypróbowałem demo dotTrace. Miałem nadzieję, że to nie będzie to, czego się spodziewałem, ale tak było. To zalewa cię pięknie prezentowanymi rzeczami, które nie mają znaczenia. Liczy się to, że spędza ponad 90% swojego czasu w rozmowie z "myBitmap.SetPixel", a mała reszta w różnych miejscach, jak przecina promień ze sferą, jak łatwo widać przy niezbyt wielu pauzach. Jechałem dookoła w DT, ale nic tam nie mówiło mi, co mi opowiadały. –

+0

@MikeDunlavey: Nie mam wystarczająco dużo kontekstu, aby zrozumieć ten komentarz, ale dotTrace z pewnością pomógł mi znaleźć wąskie gardła w czasie Noda ... –

6

Istnieje kilka wolnych profilers, nie jako kompletne lub polerowane jak te komercyjne, ale mogą na pewno wiele pomóc:

Eqatec - ten został zaprojektowany dla Windows CE, ale działa dobrze dla normalnych zastosowań .

Soft Prodigy Profile Sharp - To jest faktycznie projekt open source napisany w języku C#, więc można nim manipulować, jeśli chcesz.

0

same answer as:

Re-edycja: Pytałeś jakie opcje są. Jeśli twoje serce jest ustawione na profilowanie, to poszukaj profilera.

Z drugiej strony, jeśli rzeczywiście masz problem z wydajnością, prosta metoda działa tak samo lub lepiej niż prawie każdy profiler. Mówię prawie każdemu, ponieważ w niektórych profilerach można naprawdę dowiedzieć się, co trzeba wiedzieć, co jest kosztem czasu związanym z poszczególnymi instrukcjami, zwłaszcza instrukcjami dotyczącymi połączeń.

Koszt czasowy instrukcji to czas, który zostałby zapisany, gdyby instrukcja mogła zostać usunięta, a jej dobrym szacunkiem jest ułamek zawierających go próbek stosu wywołań. Nie musisz oszacowywać tej frakcji z dużą precyzją.Jeśli instrukcja dotyczy 5 na 10 próbek, jej koszt prawdopodobnie mieści się w zakresie od 45% do 55%. Bez względu na to - gdybyś mógł się go pozbyć, zaoszczędziłbyś jej koszty.

Dlatego znalezienie problemów z wydajnością nie jest trudne. Wystarczy pobrać kilka próbek stosu wywołań, zebrać zestaw instrukcji na tych próbkach i uporządkować instrukcje według frakcji próbek zawierających je. Wśród instrukcji o dużym ułamku są te, które możesz zoptymalizować, i nie musisz zgadywać, gdzie one są.

Upraszczam nieco, ponieważ często pomocne jest zbadanie większej ilości informacji o stanie niż tylko stos wywołań, aby sprawdzić, czy jakaś praca jest rzeczywiście konieczna. Ale mam nadzieję, że to prawda.

Ludzie wyrażają wątpliwości, czy może działać w obecności rekursji lub pracować na dużych programach. Mała myśl (i eksperymenty) pokazuje, że obiekcje nie zawierają wody.

+0

Jednak moje pytanie jest specyficzne dla Visual Studio 2008 –

+0

Działa w każdym IDE, w tym VS . –

Powiązane problemy