在我的应用程序中,我正在收集有关系统性能的数据,需要查找以下内容:
- % 可用空间
- % 磁盘时间
- % 磁盘读取时间
- % 磁盘写入时间
- % 闲置时间
- % 使用率
- % 使用率峰值
private void CollectnPopulatePerfCounters()
{
try
{
foreach (var pc in System.Diagnostics.PerformanceCounterCategory.GetCategories())
{
if (pc.CategoryName == "LogicalDisk" || pc.CategoryName == "Paging File" || pc.CategoryName == "ProcessorPerformance")
{
try
{
foreach (var insta in pc.GetInstanceNames())
{
try
{
foreach (PerformanceCounter cntr in pc.GetCounters(insta))
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\amit.txt", true))
{
sw.WriteLine("--------------------------------------------------------------------");
sw.WriteLine("Category Name : " + pc.CategoryName);
sw.WriteLine("Counter Name : " + cntr.CounterName);
sw.WriteLine("Explain Text : " + cntr.CounterHelp);
sw.WriteLine("Instance Name: " + cntr.InstanceName);
sw.WriteLine("Value : " + Convert.ToString(cntr.RawValue)); //TODO:
sw.WriteLine("Counter Type : " + cntr.CounterType);
sw.WriteLine("--------------------------------------------------------------------");
}
}
}
catch (Exception) { }
}
}
catch (Exception) { }
}
}
}
catch (Exception) { }
}
当代码执行时,数据被生成。在观察时,我发现上述列表(即% 空闲空间、% 磁盘时间等)中的值不正确。
在我的计算机上,
- C 盘的 % 磁盘读取时间 = 44553438000
- \??\C:\pagefile.sys 的 % 使用峰值 = 48386
实际上,这些值应该以百分比形式表示[即在0到100%的范围内]。
除了[% 空闲空间,我已经计算出来],是否有任何方法可以获取所有这些项目的精确值?
或者
有人知道如何计算其他所有表头吗?