Câu trả lời:
Tôi đã sử dụng rộng rãi JetBrains dotTrace và Redgate ANTS . Chúng khá giống nhau về tính năng và giá cả. Cả hai đều cung cấp hồ sơ hiệu năng hữu ích và hồ sơ bộ nhớ khá cơ bản.
dotTrace tích hợp với Resharper, điều này thực sự tiện lợi, vì bạn có thể cấu hình hiệu suất của bài kiểm tra đơn vị chỉ bằng một cú nhấp chuột từ IDE. Tuy nhiên, dotTrace dường như thường cho kết quả giả (ví dụ: nói rằng một phương pháp phải mất vài năm để chạy)
Tôi thích cách ANTS trình bày kết quả hồ sơ. Nó cho bạn biết mã nguồn và ở bên trái của mỗi dòng cho bạn biết thời gian chạy. dotTrace chỉ có một cái nhìn cây.
Trình biên dịch EQATEC khá cơ bản và yêu cầu bạn biên dịch các phiên bản cụ thể của các hội đồng mà sau đó có thể được chạy trong trình biên dịch EQATEC. Nó là, tuy nhiên, miễn phí.
Nhìn chung, tôi thích ANTS hơn cho cấu hình hiệu năng, mặc dù nếu bạn sử dụng Resharper thì việc tích hợp dotTrace là một tính năng giết người và có nghĩa là nó đánh bại ANTS về khả năng sử dụng.
Microsoft CLR Profiler miễn phí ( .Net framework 2.0 / .Net Framework 4.0 ) là tất cả những gì bạn cần cho cấu hình bộ nhớ .NET.
Cập nhật năm 2011:
Trình lược tả bộ nhớ Scitech có giao diện người dùng cơ bản nhưng có nhiều thông tin hữu ích, bao gồm một số thông tin về bộ nhớ không được quản lý mà dotTrace và ANTS thiếu - bạn có thể thấy nó hữu ích nếu bạn đang thực hiện COM interop, nhưng tôi chưa tìm thấy bất kỳ trình tạo hồ sơ nào tạo COM vấn đề bộ nhớ dễ chẩn đoán - bạn thường phải thoát ra windbg.exe
.
Trình biên dịch ANTS đã có những bước nhảy vọt trong vài năm qua và trình lược tả bộ nhớ của nó có một số tính năng thực sự hữu ích, hiện đã đẩy nó lên trước dotTrace như một gói trong dự đoán của tôi. Tôi đủ may mắn để có giấy phép cho cả hai, nhưng nếu bạn định mua một trình tạo hồ sơ .Net cho cả hiệu năng và bộ nhớ, hãy biến nó thành ANTS.
Những người khác đã trình bày hồ sơ hiệu năng, nhưng liên quan đến hồ sơ bộ nhớ Tôi hiện đang đánh giá cả Scitech .NET Memory Profiler 3.1 và ANTS Memory Profiler 5.1 (phiên bản hiện tại kể từ tháng 9 năm 2009). Tôi đã thử JetBrains một hoặc hai năm trước và nó không tốt bằng ANTS (đối với cấu hình bộ nhớ) vì vậy lần này tôi không thấy phiền. Từ việc đọc các trang web, có vẻ như nó không có các tính năng cấu hình bộ nhớ giống như hai tính năng khác.
Cả ANTS và trình cấu hình bộ nhớ Scitech đều có các tính năng mà cái kia không có, vì vậy cái nào tốt nhất sẽ phụ thuộc vào sở thích của bạn. Nói chung, Scitech one cung cấp thông tin chi tiết hơn trong khi ANTS thực sự đáng kinh ngạc trong việc xác định đối tượng rò rỉ. Nhìn chung, tôi thích ANTS hơn vì nó rất nhanh trong việc xác định các rò rỉ có thể xảy ra.
Dưới đây là những ưu và nhược điểm chính từ kinh nghiệm của tôi:
Các tính năng phổ biến của ANTS và Scitech .NET Memory Profiler
BẤT CỨ
Trình biên dịch bộ nhớ .NET
Nói tóm lại, tôi nghĩ ANTS giúp bạn tìm thấy những gì rò rỉ nhanh hơn trong khi Scitech cung cấp thêm một chút chi tiết về hiệu suất bộ nhớ ứng dụng tổng thể của bạn và các đối tượng riêng lẻ một khi bạn biết phải xem gì (ví dụ: theo dõi ngăn xếp khi tạo). Nếu theo dõi ngăn xếp và theo dõi các đối tượng dùng một lần không được phép được thêm vào ANTS, tôi sẽ không thấy cần phải sử dụng bất cứ thứ gì khác.
Gần đây tôi đã phát hiện ra EQATEC Profiler http://www.eqatec.com/tools/profiler . Nó hoạt động với hầu hết các phiên bản .NET và trên một loạt các nền tảng. Nó rất dễ sử dụng và các bộ phận của nó là miễn phí, ngay cả cho sử dụng thương mại.
[ Tiết lộ đầy đủ ]
Mặc dù chưa có đầy đủ tính năng như một số trình biên dịch bộ nhớ .NET khác được liệt kê ở đây, có một mục mới trên thị trường có tên JustTrace . Nó được tạo bởi Telerik và mục tiêu chính của nó là làm cho việc theo dõi / định hình dễ dàng hơn và nhanh hơn để thực hiện cho tất cả các loại ứng dụng (web / Silverlight / desktop).
Nếu bạn đã từng tìm thấy hồ sơ và tối ưu hóa đáng sợ hoặc chậm với các công cụ khác, thì JustTrace có thể đáng xem.
Đừng quên nProf - một trình lược tả phần mềm miễn phí hoàn hảo.
Tôi đã tìm thấy dotTrace Profiler của JetBrains là một công cụ định hình tuyệt vời cho .NET và chế độ ASP.NET của họ là chất lượng.
Hồ sơ ANTS . Tôi đã không sử dụng nhiều, nhưng tôi thực sự không có bất kỳ phàn nàn nào về ANTS. Các hình ảnh thực sự hữu ích.
AutomatedQA AQTime cho thời gian và SciTech MemProfiler cho bộ nhớ.
Nếu bạn đang tìm kiếm thứ gì đó nhanh chóng, dễ dàng và miễn phí, http://code.google.com.vn/p/slimtune/ dường như làm tốt công việc.
Tôi đã làm việc với JetBrains dotTrace cho WinForms và Ứng dụng bảng điều khiển (chưa được thử nghiệm trên ASP.net) và nó hoạt động khá tốt:
Gần đây, họ cũng đã thêm một "Giấy phép cá nhân" rẻ hơn đáng kể so với giấy phép của công ty. Tuy nhiên, nếu bất cứ ai khác biết một số rẻ hơn hoặc thậm chí miễn phí, tôi cũng muốn nghe :-)
Đừng quên scitech tuyệt vời bộ nhớ .net
Thật tuyệt vời khi theo dõi lý do tại sao ứng dụng .net của bạn hết bộ nhớ.
Tôi sẽ thêm khả năng của dotTrace vào bộ nhớ khác và các phiên theo dõi hiệu suất là vô giá (ANTS cũng có thể có tính năng tìm khác biệt về bộ nhớ, nhưng tôi không thấy hiệu suất khác biệt).
Có thể chạy phiên hồ sơ trước và sau khi sửa lỗi hoặc nâng cao, sau đó so sánh kết quả là vô cùng có giá trị, đặc biệt là với ứng dụng .NET kế thừa của voi ma mút (như trong trường hợp của tôi), trong đó hiệu suất không bao giờ là ưu tiên và trong đó việc tìm kiếm tắc nghẽn có thể RẤT tẻ nhạt. Thực hiện khác biệt trước và sau cho phép bạn thấy sự thay đổi về số lượng cuộc gọi cho từng phương thức và thay đổi thời lượng cho từng phương thức .
Điều này hữu ích không chỉ trong quá trình thay đổi mã, mà còn nếu bạn có một ứng dụng sử dụng một cơ sở dữ liệu khác nhau, cho mỗi khách hàng / khách hàng. Nếu một khách hàng phàn nàn về sự chậm chạp, bạn có thể chạy phiên hồ sơ bằng cơ sở dữ liệu của họ và so sánh kết quả với cơ sở dữ liệu "nhanh" để xác định hoạt động nào đang đóng góp cho sự chậm chạp. Tất nhiên có nhiều công cụ hiệu suất phía cơ sở dữ liệu, nhưng đôi khi tôi thực sự giúp xem các số liệu hiệu suất từ phía ứng dụng (vì nó gần với những gì người dùng thực sự nhìn thấy).
Tóm lại: dotTrace hoạt động rất tốt và khác biệt là vô giá.
AQTime là hợp lý, nhưng có một chút đường cong học tập và không dễ sử dụng như được tích hợp sẵn trong Team Suite
Trước đây, tôi đã sử dụng trình lược tả đi kèm với Hệ thống nhóm Visual Studio .
Bản phát hành hiện tại của SharpDevelop (3.1.1) có một hồ sơ tích hợp đẹp. Nó khá nhanh và tích hợp rất tốt vào SharpDevelop IDE và trình chạy NUnit của nó. Kết quả được hiển thị theo kiểu Cây / Danh sách linh hoạt (sử dụng LINQ để tạo lựa chọn của riêng bạn). Nhân đôi phương thức được hiển thị nhảy trực tiếp vào mã nguồn.
Tôi nghi ngờ rằng trình hồ sơ đi kèm với Visual Studio Team System là trình tạo hồ sơ tốt nhất, nhưng tôi đã thấy nó đủ tốt trong nhiều trường hợp. Những gì cụ thể bạn cần ngoài những gì VS cung cấp?
EDIT: Thật không may, nó chỉ có sẵn trong VS Team System, nhưng nếu bạn có quyền truy cập vào đó thì đáng để kiểm tra.
Trình phân tích hiệu suất Intel® VTune ™ để lấy mẫu nhanh
Tôi phải mang theo một công cụ tuyệt vời để thông báo cho bạn mà tôi đã sử dụng đôi khi trở lại. Studio đánh chặn AVICode . Trong công ty trước đây của chúng tôi, chúng tôi đã sử dụng công cụ tuyệt vời này để lập hồ sơ ứng dụng web ( Đây được cho là ứng dụng web lớn nhất trên thế giới và là dự án CNTT dân sự lớn nhất từng được thực hiện ). Đội ngũ biểu diễn đã làm nên điều kỳ diệu với sự trợ giúp của công cụ tuyệt vời này. Thật là một nỗi đau khi cấu hình nó, nhưng đó là một hoạt động một lần và tôi sẽ nói rằng nó đáng giá thời gian. Kiểm tra trang này để biết chi tiết.
Cảm ơn, James
Đối với tôi SpeedTrace là công cụ tốt nhất trên thị trường vì nó không chỉ giúp bạn tìm ra các nút thắt bên trong các ứng dụng của mình. Nó cũng giúp bạn trong các tình huống khắc phục sự cố để tìm hiểu lý do tại sao ứng dụng của bạn bị lỗi, thiết lập của bạn không cài đặt, ứng dụng của bạn bị treo, hiệu suất ứng dụng của bạn đôi khi kém tùy thuộc vào dữ liệu đầu vào, ví dụ: để xác định các giao dịch db chậm.
Gần đây tôi đã thử nghiệm JustTrace của Telerik và mặc dù nó cách xa một sản phẩm hoàn chỉnh, các chàng trai đang đi đúng hướng.
Trình hồ sơ NuMega True Time tồn tại trong DevPartner Studio của Micro Focus. Nó cung cấp chi tiết mức độ dòng và phương thức cho các ứng dụng .NET chỉ cần PDB, không cần nguồn (nhưng nó giúp.) Nó có thể phân biệt giữa các thói quen nặng về mặt thuật toán so với các ứng dụng có I / O dài chờ sử dụng trình điều khiển thời gian chế độ hạt nhân độc quyền của chúng tôi. Phiên bản 10.5 được hỗ trợ 64 quy trình mới vào ngày 4 tháng 2 năm 2011. Ổ cắm không biết xấu hổ: Tôi làm việc trên dòng sản phẩm DevPartner. Theo dõi tại http://www.DevPartner.com để biết tin tức về sự ra mắt 10.5.
Tuyên bố miễn trừ trách nhiệm: Tôi là Giám đốc sản phẩm cho DevPartner tại Micro Focus.
Tôi đã tìm thấy rất nhiều vấn đề trong một ứng dụng C # lớn khi sử dụng ứng dụng này .
Thông thường, sự cố xảy ra trong quá trình khởi động hoặc tắt máy khi các plugin đang được tải và các cấu trúc dữ liệu lớn đang được tạo, hủy, tuần tự hóa hoặc giải tuần tự hóa. Thường thì chúng được tạo và khởi tạo nhiều lần và các trình xử lý thay đổi được thêm vào nhiều lần, làm tăng thêm vấn đề.
Trong những trường hợp như thế này, chương trình có thể chậm chạp đến mức chỉ có 2 mẫu là đủ để xác định chính xác các trang web gọi phương thức / chức năng / thuộc tính có tội.
Chúng tôi đã chọn YourKit Profiler cho .NET trong công ty của tôi vì đó là giá trị tốt nhất (giá so với tính năng). Đối với một công ty nhỏ muốn có giấy phép linh hoạt (giấy phép thả nổi) thì đó là một lựa chọn hoàn hảo - ANTS là nhà phát triển chỗ ngồi tại thời điểm đó.
Ngoài ra, nó cung cấp cho chúng tôi khả năng đính kèm vào quy trình đang chạy mà dotTrace không thể thực hiện được. Coi chừng việc đính kèm không phải là tùy chọn tốt nhất vì mọi thứ .NET sẽ chậm lại, nhưng đây là cách duy nhất để cấu hình các ứng dụng .NET được khởi động bởi các quy trình khác. Tính năng khôn ngoan, ANTS và dotTrace tốt hơn - nhưng cuối cùng YourKit đã đủ tốt.