2010-12-13 19 views
7

Tôi không biết tiêu đề có hợp lý hay không nhưng những gì tôi đang cố gắng làm là tính thời gian cho 2 phương pháp khác nhau và xem số lần thực thi mỗi giây, hoặc cứ 10 giây.Làm thế nào để cấu hình phương pháp C# mỗi giây?

Ví dụ:

DividePolygons1(Polygon[] polys) 
DividePolygons2(Polygon[] polys) 

DividePolygons1 ran: 
1642 times per 1 second 

DividePolygons2 ran: 
1890 times per 1 second 

Trả lời

10

Lớp System.Diagnostics.Stopwatch sẽ giúp bạn ở đây, nhưng phải cẩn thận để sử dụng kết quả bằng cách nào đó để tôi ưu hoa không loại trừ logic bạn đang cố gắng để đo lường.

Ngoài ra, chỉ cần chạy mã bạn đang định dạng vài triệu lần trong một vòng lặp (điều chỉnh số lần lặp lại để mất từ ​​1 đến 30 giây), sau đó chia số lần lặp lại theo thời gian để lấy thông lượng trong thực thi mỗi giây.

+5

Và sử dụng bản phát hành bản phát hành và không có trình gỡ lỗi được đính kèm khi bắt đầu chương trình. Và tốt hơn chạy tất cả các mã một lần trước khi bắt đầu điểm chuẩn để các hiệu ứng khởi động như JITing không được đo lường. – CodesInChaos

+1

Đừng quên chú ý đến địa phương tham khảo. Có thể mất nhiều thời gian hơn để chia các đa giác chính xác giống nhau nếu chúng không phải lúc nào cũng được tạo cùng một lúc. –

+0

@CodeInChaos, làm cách nào để đảm bảo không có trình gỡ lỗi được đính kèm? sử dụng bản phát hành bản phát hành tự động thực hiện điều này? –

2

Những gì tôi sẽ làm gì:

  • Bắt đầu một Stopwatch.
  • Trong các chức năng đó, tôi tăng một biến đơn giản (dài, phao hoặc kép, tùy thuộc vào mức độ thường xuyên bạn nghĩ rằng chúng sẽ được gọi) để tăng dần trên mỗi cuộc gọi.
  • Gọi hàm đầu tiên.
  • Dừng số Stopwatch và kiểm tra TotalSeconds so với biến tôi đã tăng.
  • Lặp lại cho hàm thứ hai.
1

Visual Studio 2010 có trình thu thập thông tin có thể xác định chính xác số lượng cuộc gọi phương thức theo đơn vị thời gian.

+0

Cảm ơn, có phải là phiên bản chuyên nghiệp không? (không phải là cuối cùng) –

+1

Trình hồ sơ có sẵn trong các phiên bản Premium và Ultimate, nhưng không phải là Pro. Xem http://www.microsoft.com/visualstudio/en-us/products trong phần "Gỡ lỗi và chẩn đoán". –

Các vấn đề liên quan