gpt4 book ai didi

.net - 使用Shapes派生对象代替Visual派生对象造成的性能下降有多大

转载 作者:行者123 更新时间:2023-12-05 00:02:58 25 4
gpt4 key购买 nike

在创建包含数千个形状的绘图应用程序或模拟时,由于性能下降,建议使用派生自 Visual 的类(如 DrawingVisual)而不是派生自 Shape 的类。

我想知道性能下降了多少,其中大部分是由于派生类层次结构中的 FrameworkElement 类造成的吗?应该决定使用 Visual 而不是 Shape 的阈值是多少?以及失去链上 UIElement 和 FrameworkElement 的利弊是什么?

最佳答案

Drawing派生类的重量要轻得多,因为它们基本上只是渲染基元。除了定义将要绘制的区域之外,它们实际上并没有做太多事情。

当您使用派生自 Shape 的类时,对象都必须注册事件处理并作为标准布局系统的一部分工作,以及处理它们自己的所有渲染。这不会对少数对象产生巨大影响,但是随着您添加更多对象,布局传递和事件处理确实会对整体性能产生很大影响。

I want to know how much is the performance degradation and is majority of it due to FrameworkElement class in the hierarchy of derived classes?



几乎所有这些 - 事实上它来自 FrameworkElement意味着 Shape必须处理所有的布局、事件和渲染,这就是它变慢的全部原因。

And what is the threshold beyond which one should decide using Visual instead of Shape? And what are the pros and cons of losing UIElement and FrameworkElement in the chain?



衡量,看看你的阈值在哪里...很大程度上取决于你在做什么,以及你如何使用这些类型。

获取更多详细信息的好资源是 Drawings and Shapes WPF Performance Optimization的部分MSDN 上的页面。

关于.net - 使用Shapes派生对象代替Visual派生对象造成的性能下降有多大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com