在我的应用程序中,我正在收集有关系统性能的数据,我需要找到
使用以下功能;
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) { }
}
执行代码时,会生成数据。虽然观察我发现上述清单的价值[即%可用空间,%磁盘时间等]格式不正确。
在我的机器上显示
的值实际上该值应为百分比形式[,即在0到100%的范围内]
有没有办法获得所有这些的确切值,除了[我已计算的%自由空间]。
或
是否有人知道如何计算所有标题的其余部分。
答案 0 :(得分:2)
使用以下
sw.WriteLine("Value : " + Convert.ToString(Math.Round(cntr.NextValue(),2)) + "%");
更多信息:
Why the cpu performance counter kept reporting 0% cpu usage?
一切顺利!
别忘了投票:-D