我的计算密集型图像处理应用程序在运行时(在 Windows 8.1 HP 笔记本电脑上)CPU 的运行速度如预期那样超过 100%,但同时服务 CPU 使用率上升到 50% 以上(非常出乎意料)并且列出的使用大量 CPU 的服务根本没有意义。
我的计算密集型图像处理应用程序首先从摄像机中抓取几千帧视频数据,然后对数据进行图像处理。在抓取帧的过程中,会在帧进入时对其进行一些预计算(直方图、最小值/最大值等),但大部分处理是在之后进行的。抓取大约需要 10 秒,计算需要 13-20 秒。我使用 OMP 和 Visual Studio 2013 进行所有计算,以分配给笔记本电脑上的所有 8 个 CPU。
以下是资源监视器显示的内容:
当我用 CPU 替换计算密集型功能时,Sleep
CPU 下降到接近 0,服务 CPU 也下降到接近 0,所以不是 OMP、线程、信号量等导致服务 CPU 升高,因为这些仍然像以前一样发生。
我的问题是:
为什么仅仅因为我的线程正在计算某些东西,服务 CPU 就会升高?
为什么“DigitalPersona Aut..”、 “Win.. Defendeer..”、“Win.. Phone..”、“IP Helper”等服务会涉及繁重的计算任务。
50% 的 CPU 是否浪费在了针服务任务上?
任何人对此有任何想法或知识。
答案1
您可以尝试使用以下工具检查这些服务正在做什么 进程探索器,尽管这需要一些 Windows API 知识。
您还可以通过禁用某些服务来开始减少问题:
如果您不使用指纹扫描仪登录,则可以禁用 DigitalPersona 服务。如果您安装了 HP SimplePass,则可以将其卸载。
IpOverUsbSvc 服务通常由 Windows SDK 安装。如果您不使用计算机打电话,则可以禁用该服务。
不过,我可以理解当计算机非常活跃时,Defender 会更加活跃,因为它会跟踪所有正在发生的事情。你也许可以为这个程序所在的文件夹创建一个例外,也许这会让事情稍微平静下来。