【发布时间】:2012-04-19 02:50:47
【问题描述】:
我创建了一个性能计数器,可以检查总内存使用率(以 % 为单位),但问题是它给我的值与任务管理器中显示的值不同。例如:我的程序说 34%,但任务管理器说 40%。
有什么想法吗?
注意
我尝试获取系统的可用 RAM,而不是进程使用的 RAM。
当前代码
private PerformanceCounter performanceCounterRAM = new PerformanceCounter();
performanceCounterRAM.CounterName = "% Committed Bytes In Use";
performanceCounterRAM.CategoryName = "Memory";
progressBarRAM.Value = (int)(performanceCounterRAM.NextValue());
labelRAM.Text = "RAM: " + progressBarRAM.Value.ToString(CultureInfo.InvariantCulture) + "%";
编辑
我用计时器每秒刷新一次进度条和标签。
【问题讨论】:
-
与任务管理器相比,是不是TM和你的值只取决于时间延迟?我的意思是,TM 也会每秒刷新一次它的值。因此,如果您的应用程序和任务管理器具有同步的刷新时间,那么它们 那么 是否具有相同的值?
-
我也试过了,但程序显示的值仍然低于 TM :(.
-
正在使用哪个操作系统? XP、Win 7、Vista?
标签: c# performancecounter