滚动查看器作为视频内存管理的大师

发布于 2024-12-10 21:21:06 字数 328 浏览 0 评论 0原文

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

我的问题是这

  1. 就是我们所说的视频内存吗?
  2. 我们在 WinForms 应用程序中是否也观察到同样的情况?我问这个问题是因为当我最小化 MSWord 时,我发现它没有做类似的事情。
  3. 另外,如果 Windows 操作系统能够很好地管理内存,那么我们为什么不虚拟化所有内容,而不是制作虚拟化堆栈面板,为什么我们不让滚动查看器成为 UI 虚拟化的大师呢?

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

I dont know how many of you have observed this, when we minimize a complex WPF application we can observe reduction in used memory. Also when we restore the WPF window, it regains that memory.

My question is this

  1. Is this what we call video memory?
  2. Do we observe the same thing in WinForms apps too? I am asking this because I saw MSWord not doing anything like that when I minimized it.
  3. Also if windows OS manages this memory so well, then why didnt we virtualize everything i.e. instead of making virtualized stack panels, why wouldn't we make scroll viewers the master of UI virtualization?

I hope I get some interesting answers on this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抚你发端 2024-12-17 21:21:07

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

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

WinForms 应用程序不会 - 它们仅使用 GDI 进行渲染,因此除非设计上发生了屏幕外的情况,否则使用的视频内存要少得多。

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

因此,我不明白你所说的“如果 Windows 操作系统能够很好地管理内存”是什么意思 - 虚拟化可能在某些方面很擅长,但当然也有很多缺点,特别是对于 WPF,这就是你不会这样做的原因。不要到处使用它。

Video Memory is something completely different. It is used by a graphics card to store textures, screen imagery, shader program input/output, etc.

WPF uses more video memory because it uses graphics acceleration, textures, shaders and offscreen surfaces.

WinForms apps do not - they only render using GDI and as such unless something is happening off-screen by design, far less video memory is used.

Finally, you cannot measure video memory without using a dedicated tool. Any memory you see when restoring/minimizing windows etc in Task Manager is not video memory, but 'regular' memory. Actually you might see main system memory used for video memory in an extremely low-end system, but more likely WPF doesn't need to keep as many things current in the event the window is minimized, so some objects are released.

As such, I don't understand what you mean by, 'if Windows OS manages this memory so well' - virtualisation might be good at some things, but of course has its numerous downsides, especially with WPF, which is why you wouldn't use it everywhere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文