为什么软件渲染在WPF中使用更多内存?

时间:2014-08-04 11:05:08

标签: c# wpf

我有一个使用WPF画布显示非常高分辨率图像的应用程序。 我注意到当我的本地计算机上显示相同的图像时,没有问题,应用程序的内存在任务管理器上大约为5GB。 但是当我使用远程桌面时,同一个应用程序显示相同的图像在任务管理器中占用大约8GB。

我使用硬件加速(如果可用)阅读WPF,但在某些情况下切换到软件渲染。其中一个案例是远程桌面。 http://blogs.msdn.com/b/jgoldb/archive/2010/06/22/software-rendering-usage-in-wpf.aspx

现在我的问题是,虽然我知道CPU现在正在进行远程桌面渲染的所有计算,为什么硬件渲染和软件渲染之间存在如此巨大的差异? 任何帮助或见解都将得到真正的赞赏。

1 个答案:

答案 0 :(得分:1)

在软件渲染期间,CPU和主存储器负责所有渲染操作。 因此,所有临时缓冲区都保存在主内存中,并且CPU会对渲染操作进行计算,从而导致性能下降和内存使用量增加。

在硬件渲染过程中,所有这些都将由GPU和视频内存完成。

请注意,在某些情况下,硬件渲染可能比软件渲染慢。 请参阅问题中发布的链接。