我有一個在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