【发布时间】:2023-04-08 11:19:01
【问题描述】:
我已阅读post 并想知道,如果进程/程序在根/内核模式下运行得更快。 目前我认为一定是这样,因为在 cpu 执行期间没有通过那些操作系统环(用户到内核环)。我说的对吗?
【问题讨论】:
标签: performance
我已阅读post 并想知道,如果进程/程序在根/内核模式下运行得更快。 目前我认为一定是这样,因为在 cpu 执行期间没有通过那些操作系统环(用户到内核环)。我说的对吗?
【问题讨论】:
标签: performance
这对于环形转换来说是正确的,是的。但是典型程序中的大多数 CPU 时间并没有花在环形转换上。如果一个程序花费 10%,这是很多,它最多可以快 10%。
当您编写时:while (true) ; 永远不会转换,您不会观察到任何性能差异。
更一般地说,CPU 环、虚拟内存和虚拟化带来的保护是安全功能,它们确实需要付出性能代价。成本与您使用这些功能的程度成正比。微软的一项研究曾经发现,如果我没记错的话,虚拟内存通常会消耗 10-20% 的性能。
内核模式内存是虚拟的,就像用户模式内存一样(至少在当前操作系统中)。
【讨论】: