【问题标题】:How can we improve the performance of our WPF Animations (100 of them)?我们如何提高 WPF 动画(其中 100 个)的性能?
【发布时间】:2010-12-23 02:14:30
【问题描述】:

我们有一个应用程序,它在运行时生成大约 100 个动画,它们都被添加到一个故事板中然后播放。问题是动画非常慢。动画对象是形状和样条线,并且在后端进行了大量计算以生成自定义样条线。跑步机是四核,显卡不错。

关于我们如何解决这个问题有什么建议吗?我们是否需要将动画拆分为多个故事板或在不同的画布上制作动画?

谢谢

【问题讨论】:

  • 什么操作系统版本?有多少 UI 元素被动画化?
  • 它在 Windows 7 中运行。在每个动画中只有一个对象被动画,但故事板中大约有 100 个动画。
  • 动画仅仅是改变对象的位置还是还涉及改变大小/形状?如果是第一个,那么应该可以为那么多对象设置动画。如果稍后,那么你给渲染器大量的计算,因此性能很慢。

标签: wpf animation performance storyboard


【解决方案1】:

不看动画和代码就很难知道是什么减慢了你的动画。但我会给你一些有助于改进它们的一般要点。

  1. 如果计算量很大,请将您的计算移到不同的线程中。 Dispatcher 线程正忙于进行 UI 管理,因此如果将所有内容都放在一个线程中,这肯定会减慢速度。
  2. 重用您的样条线、形状等,这肯定会对您有所帮助,因为您还可以将您的应用程序从昂贵的垃圾收集例程中解放出来。事实上,在开始动画之前,显示一些不同的动画,如时钟等,以创建开始时所需的所有对象。
  3. 探索位图缓存选项并尝试实现它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2012-12-03
    • 2018-11-15
    • 1970-01-01
    相关资源
    最近更新 更多