Jawaban:
Saya telah menggunakan JetBrains dotTrace dan Redgate ANTS secara ekstensif. Mereka cukup mirip dalam fitur dan harga. Keduanya menawarkan profil kinerja yang berguna dan profil memori yang cukup mendasar.
dotTrace terintegrasi dengan Resharper, yang sangat nyaman, karena Anda dapat membuat profil kinerja unit test dengan satu klik dari IDE. Namun, dotTrace sepertinya memberikan hasil palsu (mis. Mengatakan bahwa suatu metode membutuhkan waktu beberapa tahun untuk menjalankannya)
Saya lebih suka cara SEMUT menyajikan hasil profil. Ini menunjukkan kepada Anda kode sumber dan di sebelah kiri setiap baris memberitahu Anda berapa lama untuk dijalankan. dotTrace hanya memiliki tampilan hierarki.
Profiler EQATEC cukup mendasar dan mengharuskan Anda untuk mengkompilasi versi khusus instrumen majelis Anda yang kemudian dapat dijalankan di profiler EQATEC. Namun, gratis.
Secara keseluruhan saya lebih suka SEMUT untuk profil kinerja, meskipun jika Anda menggunakan Resharper maka integrasi dotTrace adalah fitur pembunuh dan berarti itu mengalahkan SEMUT dalam kegunaan.
Microsoft CLR Profiler gratis ( .Net framework 2.0 / .Net Framework 4.0 ) adalah semua yang Anda butuhkan untuk profil memori NET.
Pembaruan 2011:
The Scitech memori profiler memiliki cukup UI dasar tetapi banyak informasi yang berguna, termasuk beberapa informasi pada memori unmanaged yang dotTrace dan SEMUT kekurangan - Anda mungkin menemukan itu berguna jika Anda melakukan COM Interop, tapi saya belum menemukan profiler yang membuat COM masalah memori mudah didiagnosis - Anda biasanya harus keluar windbg.exe
.
Profiler ANTS telah muncul secara cepat dalam beberapa tahun terakhir, dan memory profilernya memiliki beberapa fitur yang sangat berguna yang sekarang mendorongnya di depan dotTrace sebagai paket dalam perkiraan saya. Saya cukup beruntung memiliki lisensi untuk keduanya, tetapi jika Anda akan membeli satu. Profiler bersih untuk kinerja dan memori, buat itu SEMUT.
Yang lain telah membahas profil kinerja, tetapi berkaitan dengan profil memori saya sedang mengevaluasi Scitech .NET Memory Profiler 3.1 dan ANTS Memory Profiler 5.1 (versi saat ini pada September 2009). Saya mencoba JetBrains satu atau dua tahun yang lalu dan itu tidak sebagus SEMUT (untuk profil memori) jadi saya tidak repot-repot kali ini. Dari membaca situs web sepertinya tidak memiliki fitur profil memori yang sama seperti dua lainnya.
Baik ANTS dan profil memori Scitech memiliki fitur yang tidak dimiliki oleh yang lain, jadi yang terbaik akan tergantung pada preferensi Anda. Secara umum, yang Scitech memberikan informasi yang lebih rinci sementara yang SEMUT sangat luar biasa dalam mengidentifikasi objek bocor. Secara keseluruhan, saya lebih suka yang SEMUT karena sangat cepat mengidentifikasi kemungkinan kebocoran.
Berikut adalah pro dan kontra masing-masing dari pengalaman saya:
Fitur Umum ANTS dan Scitech .NET Memory Profiler
SEMUT
Scitech .NET Memory Profiler
Sebagai ringkasan, saya pikir SEMUT membantu Anda menemukan apa yang bocor lebih cepat sementara Scitech memberikan sedikit lebih detail tentang kinerja memori aplikasi keseluruhan Anda dan objek individual setelah Anda tahu apa yang harus dilihat (mis. Tumpukan jejak pada kreasi). Jika tumpukan jejak dan pelacakan benda sekali pakai yang tidak diinginkan ditambahkan ke SEMUT, saya tidak akan melihat perlunya menggunakan yang lain.
Saya baru-baru ini menemukan EQATEC Profiler http://www.eqatec.com/tools/profiler . Ini berfungsi dengan sebagian besar versi .NET dan pada banyak platform. Mudah digunakan dan sebagian gratis, bahkan untuk penggunaan komersial.
Meskipun belum memiliki fitur lengkap seperti beberapa profiler memori .NET lainnya yang tercantum di sini, ada entri baru di pasar yang disebut JustTrace . Ini dibuat oleh Telerik dan tujuan utamanya adalah untuk membuat penelusuran / pembuatan profil lebih mudah dan lebih cepat dilakukan untuk semua jenis aplikasi (web / Silverlight / desktop).
Jika Anda pernah menemukan profil dan optimasi yang mengintimidasi atau lambat dengan alat lain, maka JustTrace mungkin layak untuk dilihat.
Jangan lupa nProf - profiler yang bagus dan freeware.
Saya telah menemukan dotTrace Profiler oleh JetBrains sebagai alat profiling yang sangat baik untuk .NET dan mode ASP.NET mereka berkualitas.
Profil Semut . Saya belum pernah menggunakan banyak, tetapi saya tidak benar-benar memiliki keluhan tentang SEMUT. Visualisasi ini sangat membantu.
AutomatedQA AQTime untuk pengaturan waktu dan SciTech MemProfiler untuk memori.
Jika Anda mencari sesuatu yang cepat, mudah, dan gratis, http://code.google.com/p/slimtune/ tampaknya melakukan pekerjaan dengan baik.
Saya telah bekerja dengan JetBrains dotTrace untuk WinForms dan Aplikasi Konsol (belum diuji di ASP.net), dan bekerja dengan cukup baik:
Mereka baru-baru ini juga menambahkan "Lisensi Pribadi" yang jauh lebih murah daripada lisensi perusahaan. Namun, jika ada orang lain yang tahu yang lebih murah atau bahkan gratis, saya ingin mendengar juga :-)
Jangan lupa profiler memori .net scitech yang mengagumkan
Ini bagus untuk melacak mengapa aplikasi .net Anda kehabisan memori.
Saya ingin menambahkan bahwa kemampuan dotTrace untuk memori berbeda dan sesi penelusuran kinerja sangat berharga (ANTS mungkin juga memiliki fitur memori berbeda, tetapi saya tidak melihat perbedaan kinerja).
Mampu menjalankan sesi pembuatan profil sebelum dan sesudah perbaikan atau peningkatan bug, kemudian membandingkan hasilnya sangat berharga, terutama dengan aplikasi .NET (seperti dalam kasus saya) yang sangat besar di mana kinerja tidak pernah menjadi prioritas dan di mana menemukan kemacetan bisa menjadi SANGAT membosankan. Melakukan perbedaan sebelum dan sesudah memungkinkan Anda untuk melihat perubahan jumlah panggilan untuk setiap metode dan perubahan durasi untuk setiap metode .
Ini bermanfaat tidak hanya selama perubahan kode, tetapi juga jika Anda memiliki aplikasi yang menggunakan basis data yang berbeda, misalnya, untuk setiap klien / pelanggan. Jika satu pelanggan mengeluh kelambatan, Anda dapat menjalankan sesi profil menggunakan basis data mereka dan membandingkan hasilnya dengan basis data "cepat" untuk menentukan operasi mana yang berkontribusi terhadap kelambatan. Tentu saja ada banyak alat kinerja sisi-database, tetapi kadang-kadang saya benar-benar membantu untuk melihat metrik kinerja dari sisi aplikasi (karena itu lebih dekat dengan apa yang sebenarnya dilihat pengguna).
Intinya: dotTrace berfungsi dengan baik, dan perbedaannya sangat berharga.
AQTime masuk akal, tetapi memiliki sedikit kurva pembelajaran dan tidak mudah digunakan seperti yang dibangun di dalam Team Suite
Di masa lalu, saya telah menggunakan profiler yang dikirimkan dengan Visual Studio Team System .
Rilis SharpDevelop saat ini (3.1.1) memiliki profiler terintegrasi yang bagus. Ini cukup cepat, dan terintegrasi dengan sangat baik ke dalam SharpDevelop IDE dan NUnit runner-nya. Hasil ditampilkan dalam gaya Pohon / Daftar yang fleksibel (gunakan LINQ untuk membuat pilihan Anda sendiri). Menggandakan metode yang ditampilkan melompat langsung ke kode sumber.
Saya ragu bahwa profiler yang datang dengan Visual Studio Team System adalah profiler terbaik, tetapi saya telah menemukan itu cukup baik pada banyak kesempatan. Apa yang Anda butuhkan secara spesifik di luar apa yang ditawarkan VS?
EDIT: Sayangnya itu hanya tersedia dalam Sistem Tim VS, tetapi jika Anda memiliki akses ke sana itu perlu diperiksa.
Intel® VTune ™ Performance Analyzer untuk pengambilan sampel cepat
Saya harus membawa alat yang luar biasa untuk pemberitahuan Anda yang telah saya gunakan beberapa waktu lalu. AVICode Interceptor Studio . Di perusahaan saya sebelumnya, kami menggunakan alat luar biasa ini untuk membuat profil aplikasi web ( Ini seharusnya menjadi aplikasi web tunggal terbesar di dunia dan proyek TI sipil terbesar yang pernah dilakukan ). Tim kinerja melakukan keajaiban dengan bantuan alat luar biasa ini. Sangat sulit untuk mengkonfigurasinya, tetapi itu adalah aktivitas satu kali dan saya akan mengatakan itu layak untuk dilakukan. Periksa halaman ini untuk detailnya.
Terima kasih, James
Bagi saya, SpeedTrace adalah alat terbaik di pasar karena tidak hanya membantu Anda menemukan hambatan dalam aplikasi Anda. Ini juga membantu Anda dalam skenario pemecahan masalah untuk mencari tahu mengapa aplikasi Anda macet, setup Anda tidak menginstal, aplikasi Anda menutup, kinerja aplikasi Anda kadang-kadang buruk tergantung pada input data, misalnya untuk mengidentifikasi transaksi db lambat.
Saya telah menguji JustTrace Telerik baru-baru ini dan meskipun jauh dari produk jadi, orang-orang akan ke arah yang benar.
Profiler True Time NuMega hidup di DevPartner Studio oleh Micro Focus. Ini memberikan detail level jalur dan metode untuk .NET apps yang hanya membutuhkan PDB, tidak diperlukan sumber (tetapi ini membantu.) Ia dapat membedakan antara rutinitas yang berat secara algoritmik dibandingkan dengan yang lama menggunakan I / O dengan menggunakan pengatur waktu mode kernel per thread kernel. Versi 10.5 dikirimkan dengan dukungan 64-proses baru pada 4 Februari 2011. Plug tidak tahu malu: Saya bekerja pada lini produk DevPartner. Tindak lanjuti di http://www.DevPartner.com untuk berita peluncuran 10.5.
Penafian: Saya Manajer Produk untuk DevPartner di Micro Focus.
Saya telah menemukan banyak masalah di aplikasi C # besar menggunakan ini .
Biasanya masalah terjadi selama startup atau shutdown ketika plugins sedang dimuat, dan struktur data besar sedang dibuat, dihancurkan, serial, atau deserialized. Seringkali mereka dibuat dan diinisialisasi lebih dari sekali, dan penangan perubahan ditambahkan beberapa kali, semakin memperparah masalah.
Dalam kasus seperti ini, program bisa sangat lamban sehingga hanya 2 sampel yang cukup untuk menunjukkan metode / fungsi / situs panggilan properti yang bersalah.
Kami memilih YourKit Profiler untuk .NET di perusahaan saya karena nilai terbaik (harga vs. fitur). Untuk perusahaan kecil yang ingin memiliki lisensi fleksibel (lisensi mengambang) itu adalah pilihan yang sempurna - ANTS adalah liontin kursi pengembang pada saat itu.
Juga, itu memberi kami kemampuan untuk melampirkan ke proses yang sedang berjalan yang tidak mungkin dengan dotTrace. Berhati-hatilah meskipun melampirkan bukanlah pilihan terbaik karena semuanya. NET akan melambat, tetapi ini adalah satu-satunya cara untuk profil. Aplikasi NET dimulai oleh proses lain. Dari segi fitur, SEMUT dan dotTrace lebih baik - tetapi pada akhirnya YourKit cukup baik.