Yanıtlar:
Ben kullandım JetBrains dotTrace ve Redgate KARINCALAR yoğun. Özellikler ve fiyat bakımından oldukça benzerler. Her ikisi de yararlı performans profili ve oldukça temel bellek profili sunar.
dotTrace, IDE'den tek bir tıklama ile bir birim testinin performansını profili oluşturabileceğiniz için gerçekten kullanışlı olan Resharper ile entegre olur. Ancak, dotTrace genellikle sahte sonuçlar veriyor gibi görünüyor (örneğin, bir yöntemin çalıştırılması birkaç yıl sürdüğünü söylemek)
ANTS'in profil oluşturma sonuçlarını sunma şeklini tercih ederim. Size kaynak kodunu gösterir ve her satırın solunda ne kadar zaman geçmesi gerektiğini gösterir. dotTrace ağaç görünümündedir.
EQATEC profil oluşturucu oldukça basittir ve daha sonra EQATEC profil düzenleyicide çalıştırılabilen, montajlarınızın özel enstrümanlı sürümlerini derlemenizi gerektirir. Ancak, ücretsizdir.
Genel olarak performans profili oluşturma için ANTS'yi tercih ediyorum, ancak Resharper kullanıyorsanız, dotTrace'in entegrasyonu bir katil özelliktir ve ANTS'yi kullanılabilirlik içinde yenmesi anlamına gelir.
Ücretsiz Microsoft CLR Profiler ( .Net framework 2.0 / .Net Framework 4.0 ) .NET bellek profili oluşturma için tek ihtiyacınız olan şeydir.
2011 Güncellemesi:
Scitech hafıza profilci oldukça temel bir UI ama dotTrace ve KARINCALAR yoksun yönetilmeyen belleğe bazı bilgiler gibi yararlı bilgilere çok var - bunu yararlı COM birlikte çalışma yapıyorsanız bulabilir, ama COM kılan herhangi Profilcinin bulmak için henüz hafıza sorunları teşhis etmek kolaydır - genellikle patlamanız gerekir windbg.exe
.
ANTS profili oluşturucusu son birkaç yıldır sıçramalara başladı ve bellek profili oluşturucusu, tahminimde bir paket olarak dotTrace'i öne çıkaran bazı gerçekten kullanışlı özelliklere sahip. Her ikisi için de lisansa sahip olduğum için şanslıyım, ancak hem performans hem de bellek için bir .Net profiler satın alacaksanız, ANTS yapın.
Diğerleri performans profillemesini kapsadı, ancak bellek profili ile ilgili olarak şu anda hem Scitech .NET Memory Profiler 3.1 hem de ANTS Memory Profiler 5.1'i (Eylül 2009'dan itibaren geçerli sürümler) değerlendiriyorum. JetBrains'i bir ya da iki yıl önce denedim ve karıncalar (bellek profili oluşturmak için) kadar iyi değildi, bu yüzden bu kez rahatsız etmedim. Web sitelerini okurken , diğer ikisi ile aynı bellek profili oluşturma özelliklerine sahip görünmüyor .
Hem KARINCALAR hem de Scitech bellek profili oluşturucu, diğerinin sahip olmadığı özelliklere sahiptir, bu yüzden en iyisi tercihlerinize bağlıdır. Genel olarak konuşursak, Scitech olan daha ayrıntılı bilgi sağlarken ANTS olanı sızdıran nesneyi tanımlama konusunda gerçekten inanılmaz. Genel olarak, ANTS birini tercih ediyorum çünkü olası sızıntıları tanımlamak çok hızlı.
İşte deneyimlerimin her birinin artıları ve eksileri:
ANTS ve Scitech .NET Memory Profiler'in Ortak Özellikleri
KARINCALAR
Scitech .NET Bellek Profili Oluşturucu
Özetle, ANTS, daha hızlı sızan şeyleri bulmanıza yardımcı olurken, Scitech, neye bakacağınızı bildiğinizde, genel uygulama belleği performansınız ve tek tek nesneler hakkında biraz daha ayrıntılı bilgi sağlar (örneğin, oluşturmada yığın izlemesi). Yığın izi ve tek kullanımlık tek kullanımlık nesnelerin izlenmesi KARINCALAR'a eklenmiş olsaydı, başka bir şey kullanma gereğini görmezdim.
Kısa süre önce EQATEC Profiler http://www.eqatec.com/tools/profiler adresini keşfettim . Çoğu .NET sürümünde ve bir grup platformda çalışır. Kullanımı kolaydır ve parçaları ticari kullanım için bile ücretsizdir.
[ Tam Açıklama ]
Burada listelenen diğer bazı .NET bellek profil üreticileri kadar tam özellikli olmasa da , piyasada JustTrace adlı yeni bir giriş var . Telerik tarafından yapılmıştır ve birincil amacı, izleme / profil oluşturmayı her tür uygulama (web / Silverlight / masaüstü) için daha kolay ve daha hızlı hale getirmektir.
Profil oluşturma ve optimizasyonun diğer araçlarla korkutucu veya yavaş olduğunu fark ettiyseniz , JustTrace bir göz atmaya değer olabilir.
Bulduğum dotTrace Profiler tarafından JetBrains onların ASP.NET modu kalitesidir .NET ve mükemmel bir profil oluşturma aracı olmaktır.
KARINCALAR Profiler . Çok fazla kullanmadım, ama karıncalar hakkında herhangi bir şikayetim yok. Görselleştirme gerçekten yararlı.
Zamanlama için otomatik QA AQTime ve bellek için SciTech MemProfiler .
Hızlı, kolay ve ücretsiz bir şey arıyorsanız, http://code.google.com/p/slimtune/ bu işi iyi yapıyor gibi görünüyor.
WinForms ve Konsol Uygulamaları için JetBrains dotTrace ile çalışıyorum (henüz ASP.net'te test edilmedi) ve oldukça iyi çalışıyor:
Yakın zamanda, şirket lisansından önemli ölçüde daha ucuz olan bir "Kişisel Lisans" da eklediler. Yine de, eğer birisi daha ucuz ve hatta özgür olanı bilirse, ben de duymak isterim :-)
Harika scitech'i unutma .net bellek profilini
.Net uygulamanızın neden belleği azaldığını izlemek için harikadır.
DotTrace'in bellek ve performans izleme oturumlarını farklılaştırma yeteneğinin kesinlikle paha biçilmez olduğunu da ekleyeceğim (ANTS'nin bir bellek farkı özelliği de olabilir, ancak performans farkı görmedim).
Bir hata düzeltme veya geliştirme işleminden önce ve sonra bir profil oluşturma oturumu çalıştırabilmek için sonuçları, özellikle performansın hiçbir zaman öncelik olmadığı ve darboğaz bulmanın mümkün olabileceği mamut eski bir .NET uygulaması (benim durumumda olduğu gibi) ile karşılaştırmak inanılmaz derecede değerlidir. ÇOK sıkıcı. Doing bir öncesi ve sonrası fark görmenizi sağlar her yöntem için çağrı sayısında değişim ve her yöntem için süresi değişikliği .
Bu, yalnızca kod değişiklikleri sırasında değil, aynı zamanda her istemci / müşteri için farklı bir veritabanı kullanan bir uygulamanız varsa da yararlıdır. Bir müşteri yavaşlıktan şikayet ederse, veritabanını kullanarak bir profil oluşturma oturumu çalıştırabilir ve hangi işlemlerin yavaşlığa katkıda bulunduğunu belirlemek için sonuçları "hızlı" bir veritabanı ile karşılaştırabilirsiniz. Tabii ki birçok veritabanı tarafı performans aracı var, ancak bazen uygulama tarafından performans metriklerini görmeye gerçekten yardımcı oluyorum (çünkü kullanıcının gerçekte gördüklerine daha yakın).
Alt satır: dotTrace harika çalışıyor ve fark paha biçilemez.
AQTime makul, ancak biraz öğrenme eğrisine sahip ve Team Suite'teki yerleşik olan kadar kolay değil
Geçmişte Visual Studio Team System ile birlikte gelen profili kullanıyordum .
SharpDevelop'un (3.1.1) mevcut sürümü, hoş bir entegre profil oluşturucusuna sahiptir. Oldukça hızlı ve SharpDevelop IDE ve NUnit koşucusuna çok iyi entegre oluyor. Sonuçlar esnek bir Ağaç / Liste tarzında görüntülenir (kendi seçiminizi oluşturmak için LINQ kullanın). Görüntülenen yöntemin çift tıklanması doğrudan kaynak koduna atlar.
Visual Studio Team System ile gelen profil oluşturucunun en iyi profil oluşturucu olduğundan şüpheliyim, ancak birçok durumda yeterince iyi buldum. VS'nin sunduklarının ötesinde neye özellikle ihtiyacınız var?
DÜZENLEME: Ne yazık ki sadece VS Team System'de kullanılabilir, ancak buna erişiminiz varsa kontrol etmeye değer.
Hızlı örnekleme için Intel® VTune ™ Performans Analiz Cihazı
Bir süre kullandığım dikkatinize inanılmaz bir araç getirmeliyim. AVICode Durdurucu Studio . Önceki şirketimde bu harika aracı web uygulamasının profilini oluşturmak için kullandık ( Bu, dünyanın en büyük tek web uygulaması ve şimdiye kadar yapılmış en büyük sivil BT projesi olması gerekiyordu ). Performans ekibi bu muhteşem aracın yardımıyla harikalar yarattı. Bu yapılandırmak için bir acı, ama bu bir kerelik bir etkinlik ve zaman ayırmaya değer olduğunu söyleyebilirim. Bu sayfaya göz atın detayları için.
Teşekkürler, James
Benim için SpeedTrace, piyasadaki en iyi araçtır çünkü sadece uygulamalarınızda darboğazlar bulmanıza yardımcı olmaz. Ayrıca, uygulamanızın neden çöktüğünü, kurulumunuzun yüklenmediğini, uygulamanızın askıya alındığını, örneğin yavaş db işlemlerini tanımlamak için veri girişine bağlı olarak uygulama performansınızın bazen kötü olduğunu öğrenmek için sorun giderme senaryolarında size yardımcı olur.
Son zamanlarda Telerik'in JustTrace'ini test ediyorum ve bitmiş bir üründen çok uzak olmasına rağmen çocuklar doğru yönde gidiyor.
NuMega Gerçek Zamanlı profil oluşturucu Micro Focus tarafından DevPartner Studio'da yaşıyor. Yalnızca PDB gerektiren, kaynak gerektirmeyen .NET uygulamaları için satır ve yöntem düzeyinde ayrıntılar sağlar (ancak yardımcı olur.) Tescilli iş parçacığı modu zamanlama sürücüsünü kullanarak uzun G / Ç beklemelerine karşı algoritmik olarak ağır rutinler arasında ayrım yapabilir. Sürüm 10.5, 4 Şubat 2011'de yeni 64 işlem desteğiyle birlikte gönderilir. Utanmaz fiş: DevPartner ürün hattında çalışıyorum. 10.5 lansmanı ile ilgili haberler için http://www.DevPartner.com adresinden takip edin .
Feragatname: Micro Focus'ta DevPartner Ürün Yöneticisiyim.
Ben kullanarak büyük bir C # uygulaması sorunların bol buldum bu .
Genellikle eklentiler yüklenirken ve büyük veri yapıları oluşturulurken, yok edilirken, serileştirilirken veya serileştirilirken sorun başlatma veya kapatma sırasında ortaya çıkar. Genellikle bir kereden fazla oluşturulur ve başlatılırlar ve değişiklik işleyicileri birden çok kez eklenir ve sorunu daha da pekiştirir.
Bu gibi durumlarda, program o kadar yavaş olabilir ki, suçlu yöntem / işlev / özellik çağrı sitelerini saptamak için sadece 2 örnek yeterlidir.
En iyi değer (fiyat ve özellik) olduğu için şirketimde .NET için YourKit Profiler'i seçtik. Esnek lisanslama (değişken lisanslar) almak isteyen küçük bir şirket için mükemmel bir seçim oldu - ANTS o sırada geliştirici koltuğu madalyonuydu.
Ayrıca, dotTrace ile mümkün olmayan çalışan işleme ekleme yeteneğini bize sağladı. Her şeyin yavaşlayacağından, eklemenin en iyi seçenek olmadığına dikkat edin, ancak bu, diğer işlemler tarafından başlatılan .NET uygulamalarını profillemenin tek yoluydu. Özellik akıllıca, ANTS ve dotTrace daha iyiydi - ama sonunda YourKit yeterince iyiydi.