计算 CPU 使用率
本文关键字:使用率 CPU 计算 | 更新日期: 2023-09-27 18:36:39
我们的商业模式要求根据CPU小时数/使用率向用户收费。
最初,我考虑简单地使用StopWatch
,然后使用经过的时间作为度量单位。
但是我看到这种方法的问题是,在白天有 5000 个用户访问服务器时,同一段代码的经过时间将高于只有 50 个用户访问服务器的夜间时间。
另一种选择是根据用户传入的数据执行的迭代向用户收费。这种方法也存在一些问题。
- 某些函数不需要对数据进行任何迭代。
x + y
的 CPU 使用率低于x + y * z
的 CPU 使用率。
C#/.Net 中计算 CPU 使用率信息的好方法是什么,以便无论服务器的负载如何,所有用户对同一操作的 CPU 使用率信息都保持不变?
可能,实际装配级指令的总量?有没有办法在 C# 中获取这些信息?
您还能分享哪些其他方法和建议?
非常感谢您对此进行调查。
执行用户想要在单独的进程中运行的任何内容,并在进程完成后查找其 CPU 时间。这也不同于挂钟时间,因为它只考虑进程在CPU上实际运行的时间。
对于那些不愿意阅读文档的人来说,这是个最小的例子:
ProcessStartInfo psi = new ProcessStartInfo(@"C:'Blah'Foo.exe");
Process p = Process.Start(psi);
p.WaitForExit();
TimeSpan time = p.TotalProcessorTime;
p.Close();
不过,您可能希望异步运行它。
无需估计、猜测或黑魔法。无论如何,您都无法可靠地计算它。