【发布时间】:2010-02-23 15:36:47
【问题描述】:
我正在开发一个类似游戏的应用程序,它有多达一千种形状(椭圆和线条),它们以 60fps 的速度不断变化。在阅读了excellent article on rendering many moving shapes 之后,我使用自定义的 Canvas 后代实现了这一点,该后代覆盖了 OnRender 以通过 DrawingContext 进行绘图。尽管 CPU 使用率很高,但性能相当合理。
但是,文章建议不断移动形状的最有效方法是使用大量DrawingVisual 实例而不是OnRender。不幸的是,虽然它没有解释 为什么 在这种情况下应该更快。
以这种方式更改实现是一项不小的努力,所以我想在决定进行切换之前了解原因以及它们是否适用于我。在这种情况下,为什么DrawingVisual 方法比OnRender 方法的 CPU 使用率更低?
【问题讨论】:
-
Romkyns,在深入研究重大更改之前,您可以使用 DrawingVisual 和 Canvas.OnRender() 创建一些简化版本以匹配性能。至于答案——我完全同意查理。
标签: wpf performance