过程“系统”导致CPU使用率过高
问题描述:
我正在编程一个WPF应用程序。我在一些窗口中使用BitmapCache
,就像这样:过程“系统”导致CPU使用率过高
CacheMode = new BitmapCache() {
EnableClearType = false,
RenderAtScale = 2,
SnapsToDevicePixels = false; }
然后:
- 运行我的机应用,CPU使用率是正常的。
- 按Ctrl + Alt键+德尔,显示任务管理器,命名为 “系统” 的过程中显示的CPU使用率过高。
进程浏览器示出,它是由这些2个线程导致问题:
NTOSKRNL.EXE WheaAttemptPhysicalPageOffline + 0x350
dxgmms1.sys VidMmInterface + 0x26500
我用!英特尔高清显卡。
这是一个WPF,直接或图形驱动程序的错误?有人知道吗?
答
“系统”过程是一个虚假的过程,显示在环0中运行的Windows代码的统计信息。例如,设备驱动程序就在那里。 Dxgmms1.sys是DirectX的内存管理器。 WPF使用DirectX来渲染图形。位图可以使用大量内存。
因此,使用位图在DirectX相关设备驱动程序中花费大量CPU时间的WPF应用程序并不是什么神秘之处。英特尔高清显卡是图形加速器的最低价廉价实现。在AMD或NVidea视频卡上花费50美元可能会很快修复。不要求WPF缩放位图或限制它需要渲染的速度,因为视觉树已失效,这可能是另一个快速修复。
高了多久?多高?为什么它应该是一个bug? – 2013-05-07 10:45:49
它会持续几分钟,WPF屏幕将被冻结。 – wzpchina 2013-05-08 00:54:08