windows - Explorer.exe CPU 使用率随非 Explorer 进程增加?

标签 windows cpu cpu-usage explorer

我有一个在 Windows 资源管理器中运行的程序。通常,如果没有其他程序在运行,它将使用 2-3% 的 CPU(因此 explorer.exe 将在资源监视器中显示 2-3%)。当我的程序未运行而另一个不会增加 explorer.exe CPU 使用率的程序正在运行时(例如 FireFox),explorer.exe CPU 使用率可以忽略不计。

但是,当我的程序和另一个程序(如上所述)同时运行时,explorer.exe 的 CPU 使用率将增加到 8-10%。

我注意到在 Windows 资源管理器中运行的其他程序也会发生同样的事情。

有人知道为什么会这样吗?它是 Windows 固有的东西还是有其他程序可能导致这种情况?

P.S 这与 Internet Explorer (iexplorer.exe) 无关

最佳答案

这是因为任务切换(可能还有分页)。如果只有一个程序需要大量的 CPU 时间和/或内存访问,它将被赋予许多 CPU 时间片,因此将能够不间断地运行“长时间”。另一方面,如果多个进程需要大量 CPU 时间,Windows 将在它们之间频繁切换任务,从而引入额外开销(因为它需要在每个任务上存储/加载进程状态-转变)。如果您有 2 个 CPU,则问题较少但仍可测量,因为后台进程也需要注意,尽管频率较低。

更多信息请看这里:

http://en.wikipedia.org/wiki/Context_switch

将 Sleep(10) 调用插入您的程序;你的程序应该变得更长但频率更低的时间片:

http://msdn.microsoft.com/en-us/library/ms686298%28VS.85%29.aspx

关于windows - Explorer.exe CPU 使用率随非 Explorer 进程增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127492/

相关文章:

python - Python中如何区分不同类型的NaN float

c++ - 访问内核模式驱动程序内的用户模式内存

windows - sasl密码2 : generic failure on Windows

c - 如何优化图像像素化程序

java - 是否有以微代码运行 Java 的 CPU?

mysql - 如何解决 Linode 上奇怪的 CPU 峰值问题

windows - 为 Windows 开发自定义打印机驱动程序

android 在屏幕关闭时保持 cpu 全速运行

C linux正则表达式性能问题

wpf - 视觉和高CPU使用率,这个重吗?