Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 滚动查看者作为视频内存管理的主控器_Wpf_Memory Management_Scrollviewer_Ui Virtualization_Video Memory - Fatal编程技术网

Wpf 滚动查看者作为视频内存管理的主控器

Wpf 滚动查看者作为视频内存管理的主控器,wpf,memory-management,scrollviewer,ui-virtualization,video-memory,Wpf,Memory Management,Scrollviewer,Ui Virtualization,Video Memory,我不知道你们中有多少人观察到了这一点,当我们最小化一个复杂的WPF应用程序时,我们可以观察到所用内存的减少。此外,当我们恢复WPF窗口时,它会重新获得该内存 我的问题是 这就是我们所说的视频存储器吗 我们在WinForms应用程序中也观察到同样的情况吗?我问这个是因为当我最小化MSWord时,我看到它没有做任何类似的事情 另外,如果windows操作系统能够很好地管理这些内存,那么我们为什么不将所有内容虚拟化呢?也就是说,我们为什么不让scroll Viewer成为UI虚拟化的大师呢 我希望我能

我不知道你们中有多少人观察到了这一点,当我们最小化一个复杂的WPF应用程序时,我们可以观察到所用内存的减少。此外,当我们恢复WPF窗口时,它会重新获得该内存

我的问题是

  • 这就是我们所说的视频存储器吗
  • 我们在WinForms应用程序中也观察到同样的情况吗?我问这个是因为当我最小化MSWord时,我看到它没有做任何类似的事情
  • 另外,如果windows操作系统能够很好地管理这些内存,那么我们为什么不将所有内容虚拟化呢?也就是说,我们为什么不让scroll Viewer成为UI虚拟化的大师呢

  • 我希望我能得到一些有趣的答案。

    视频内存是完全不同的东西。图形卡使用它来存储纹理、屏幕图像、着色器程序输入/输出等

    WPF使用更多的视频内存,因为它使用图形加速、纹理、着色器和屏幕外表面

    WinForms应用程序不这样做——它们只使用GDI进行渲染,因此,除非屏幕外发生设计上的事情,否则使用的视频内存要少得多

    最后,如果不使用专用工具,就无法测量视频内存。在任务管理器中还原/最小化windows等时看到的任何内存都不是视频内存,而是“常规”内存。实际上,在极低端的系统中,您可能会看到用于视频内存的主系统内存,但更有可能的是,在窗口最小化的情况下,WPF不需要保持尽可能多的内容最新,因此会释放一些对象

    因此,我不明白你所说的“如果Windows操作系统能很好地管理内存”是什么意思——虚拟化在某些方面可能很好,但当然也有很多缺点,尤其是WPF,这就是为什么你不会在任何地方都使用它的原因