我有一个在C#中一直运行的进程,它处于空闲状态,除非它收到一个处理请求。一旦接收到请求,它就继续处理该请求直到它完成,然后再次变为空闲。我想要获取类似于C++中的boost::timer::cpu_timer
的每个请求的CPU挂壁时间,用户时间和系统时间。在c#中有boost :: timer :: cpu_timer的等价物吗?
Process.GetCurrentProcess().TotalProcessorTime,
Process.GetCurrentProcess().UserProcessorTime
Process.GetCurrentProcess().PrivilegedProcessorTime
会给我所有请求的时间(因为它是一个连续的运行过程)。
我想要每个请求的时间。有没有在C#中的方法,我们可以得到这个?
请注意,boost类也会计算整个过程的时间,而不仅仅是一个请求 - 如果在您的过程中执行多个“并发”操作,您将获得所有累计CPU时间。根本不存在可以根据不同的操作/请求来测量CPU时间的这种事情。无论是提升(原生)还是.net(托管)代码。 – 2014-12-19 08:23:34
谢谢Christian.K。我希望在C#中使用类似于每个请求的东西。 boost :: timer :: cpu_timer m_timer; m_timer.start(); boost :: timer :: format(m_timer.elapsed(),boost :: timer :: default_places,“%w%u%s w/u/s”); – skini 2014-12-19 08:42:59