在 c# 中是否有等效的 boost::timer::cpu_timer

本文关键字:timer boost cpu 是否 | 更新日期: 2023-09-27 18:34:44

我在 C# 中有一个始终运行的进程,除非它收到处理请求,否则该进程处于空闲状态。收到请求后,它将继续处理该请求,直到完成,然后再次变为空闲状态。我想获取每个请求的 CPU 挂墙时间、用户时间和系统时间,类似于 C++ 中的boost::timer::cpu_timer

Process.GetCurrentProcess().TotalProcessorTime, 
Process.GetCurrentProcess().UserProcessorTime 
Process.GetCurrentProcess().PrivilegedProcessorTime 

会给我所有请求的时间(因为它是一个连续运行的过程(。

我想要每个请求的时间。在 C# 中有什么办法可以得到这个吗?

在 c# 中是否有等效的 boost::timer::cpu_timer

如果所有其他方法都失败了,您始终可以只计算差异。

请注意,这并不准确,因为内核不可避免地会计算分配给进程的所有 CPU 时间,而不仅仅是用于处理某个请求。

但只要您知道您在特定时间范围内只处理过一个请求,请使用例如 手术前后Process.GetCurrentProcess().TotalProcessorTime可以作为合理的估计。