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

时间:2014-12-19 07:37:30

标签: c# c++ boost

我在C#中有一个始终在运行的进程,除非收到处理请求,否则它是空闲的。一旦收到请求,它继续处理该请求,直到它完成再次变为空闲。我希望得到每个请求的CPU挂起时间,用户时间和系统时间,类似于C ++中的boost::timer::cpu_timer

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

但只要您知道您在特定时间范围内仅提供了单个请求,请使用例如在行动之前和之后Process.GetCurrentProcess().TotalProcessorTime可以作为合理的估计。