进程“系统”导致CPU使用率过高

时间:2013-05-07 10:36:57

标签: c# wpf process

我正在编写WPF应用程序。我在某些窗口中使用BitmapCache,如下所示:

CacheMode = new BitmapCache() {
            EnableClearType = false,
            RenderAtScale = 2,
            SnapsToDevicePixels = false; }

然后:

  1. 运行我的应用程序,cpu使用正常。
  2. Ctrl + Alt + Del ,显示任务管理器,名为“System”的进程显示CPU使用率很高。
  3. Process Explorer显示了由这两个线程引起的问题:

      

    的Ntoskrnl.exe!WheaAttemptPhysicalPageOffline + 0x350
      dxgmms1.sys!VidMmInterface + 0x26500

    我使用的是Intel HD Graphics。

    这是WPF,直接或图形驱动程序的错误吗?有人知道吗?

1 个答案:

答案 0 :(得分:3)

“系统”进程是一个虚假进程,显示在环0中运行的Windows代码的统计信息。例如,设备驱动程序存在于那里。 Dxgmms1.sys是DirectX的内存管理器。 WPF使用DirectX渲染图形。位图可以使用大量内存。

看到一个使用位图的WPF应用程序在DirectX相关设备驱动程序中花费了大量的cpu时间因此并不是什么大问题。英特尔高清显卡是图形加速器的底层廉价实现。在AMD或NVidea显卡上花费五十美元可能是一个快速解决方案。不要求WPF缩放位图或限制它需要渲染的速率,因为可视化树无效可能是另一个快速修复。