2010-03-10 25 views
18

Tôi đang thêm một số bộ đếm hiệu suất vào dự án C# của mình và đang tạo một PerformanceCounterCategory mới. Trong thể loại này, tôi muốn có nhiều quầy/giờ để theo dõi những thứ khác nhau. Tôi có nhu cầu sử dụng nhiều bộ đếm thời gian trung bình và đang cố gắng hiểu cách bộ đếm AverageBase được kết hợp với bộ đếm AverageTimer32 chính xác khi có nhiều bộ đếm trong CoutnerCreationDataCollection.Bộ đếm thời gian trung bình của bộ đếm hiệu suất được kết hợp với cơ sở của chúng như thế nào?

Một vài câu hỏi:
1. Đầu tiên, đây có phải là cách đúng để thực hiện không? Các mẫu tôi đã tìm thấy tất cả chỉ có một bộ đếm thời gian trung bình.
2. Và nếu câu trả lời cho câu hỏi đầu tiên là có, thì tôi có đúng khi nghĩ rằng bộ đếm AverageBase đầu tiên được thêm vào bộ sưu tập sau AverageTimer32 không? Tôi đã tìm thấy một tài liệu tham khảo trong một bài viết cho họ cần phải được thêm vào theo thứ tự.

Dưới đây là một ví dụ về những gì tôi đang cố gắng để làm:

var dataColl = new CounterCreationDataCollection 
{ 
    new CounterCreationData 
    { 
    CounterType = PerformanceCounterType.AverageTimer32, 
    CounterName = "AverageTime1", 
    CounterHelp = "AverageTime1_Help" 
    }, 
    new CounterCreationData   // Does this get linked to AverageTime1 simply 
            // because it is being added after it? 
    { 
    CounterType = PerformanceCounterType.AverageBase, 
    CounterName = "AverageTime1Base" 
    }, 
    new CounterCreationData 
    { 
    CounterType = PerformanceCounterType.AverageTimer32, 
    CounterName = "AverageTime2", 
    CounterHelp = "AverageTime2_Help" 
    }, 
    new CounterCreationData 
    { 
    CounterType = PerformanceCounterType.AverageBase, 
    CounterName = "AverageTime2_Base" 
    }, 
} 

PerformanceCounterCategory.Create(
          "MyCategoryName" 
          , "My Category Help" 
          , PerformanceCounterCategoryType.SingleInstance 
          , dataColl); 

Trả lời

18

Chức. Các bộ đếm yêu cầu một cơ sở cần phải được theo sau ngay lập tức bởi các cơ sở trong danh sách định nghĩa. Vì vậy, mã của bạn là chính xác, bạn có hai AverageTimer32, mỗi mã theo sau là AverageBase.

Như một lưu ý phụ, khi bạn sẽ cảm thấy chán khi gõ cùng một mã lặp đi lặp lại, bạn nên xem xét Using XSLT to generate Performance Counters code.

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