Total,User&和Total之间有什么区别?特权处理时间?

时间:2015-03-24 16:38:13

标签: c# .net process cpu

我想测量cpu上代码所用的时间。 (cpu时间) 但我不知道我必须使用TotalProcessTime或UserProcessTime?

有人可以通过示例向我解释它们之间的区别(3处理时间)吗? (在msdn中不是很清楚)。

1 个答案:

答案 0 :(得分:1)

在大多数Linux和Windows操作系统中,给定程序可以以两种模式执行:内核/系统或用户。

用非常简单的术语来说:

  • 内核模式:在此模式下,程序中运行的代码可以访问主机上的所有内存,硬件等。由于这种不受限制的访问意味着错误可能导致严重的系统崩溃,因此在此模式下运行通常仅限于经过良好测试的系统级代码,可通过系统API调用从用户级代码访问。
  • 用户模式:在此模式下,程序中运行的代码不具有对硬件,内核空间内存等的低级访问权限。在此模式下运行的代码必须调用系统API来执行这些任务。调用系统API时,模式会发生变化,程序会进入内核模式,如上所述。

有关Windows用户与内核模式的更多信息,请参阅 - 查看顶部注释,这也提供了一些额外的见解:

更普遍的Unix用户vs Kernal模式,这个slidehare是一个很好的资源:

回答您的原始问题:内核模式有时也称为特权模式。程序将在用户模式下花费一些时间,并在执行时花费一些时间在内核模式中(一般情况下,它将大部分时间花在用户模式上)。在每种模式下花费的时间是问题中的用户和特权时间,总时间是两次的总和。

请注意,并非所有计算机体系结构都使用这种两种模式方法。