Tôi có đoạn mã này: Tôi tạo Bộ đếm hiệu suất ở đâu. Nó thực hiện ok, nếu không tồn tại nó tạo ra các truy cập hiệu suất là tốt, nhưng tôi không thể tìm thấy truy cập hiệu suất này, khi tôi sử dụng perfmon.Bộ đếm hiệu suất của tôi ở đâu? Nó được tạo ra nhưng tôi không thể nhìn thấy nó trong perfmon
Điều gì đang xảy ra?
const string _categoryName = "MyPerformanceCounter";
if (!PerformanceCounterCategory.Exists(_categoryName))
{
CounterCreationDataCollection counters = new CounterCreationDataCollection();
CounterCreationData ccdWorkingThreads = new CounterCreationData();
ccdWorkingThreads.CounterName = "# working threads";
ccdWorkingThreads.CounterHelp = "Total number of operations executed";
ccdWorkingThreads.CounterType = PerformanceCounterType.NumberOfItems32;
counters.Add(ccdWorkingThreads);
// create new category with the counters above
PerformanceCounterCategory.Create(_categoryName,
"Performance counters of my app",
PerformanceCounterCategoryType.SingleInstance,
counters);
}
Một vấn đề mà tôi đã gặp phải với bộ đếm perf trong quá khứ là quá trình chạy phải là quản trị viên hoặc có quyền nhất định để tạo bộ đếm hoàn tiền. Đây là lý do tại sao các bộ đếm perf mới thường được tạo tại thời điểm cài đặt thay vì thời gian chạy. Tôi không nhớ điều gì sẽ xảy ra nếu ứng dụng của bạn không có quyền quản trị; nó chỉ có thể âm thầm không tạo ra các quầy. Mặc dù tôi nghĩ rằng nó sẽ ném một ngoại lệ ... nhưng dù sao, hãy thử chạy ứng dụng của bạn với tư cách quản trị viên, nếu bạn chưa làm vậy. – CodingWithSpike
Ngoài ra, nếu bạn tạo các bộ đếm trong khi perfmon đang chạy, bạn cần phải khởi động lại perfmon để làm cho nó nhận ra các quầy mới. –
Ngoài ra, các quầy không hiển thị ngay lập tức. Đôi khi phải mất vài giây để có thể nhìn thấy chúng. –