首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道为什么动画口吃?

问如何知道为什么动画口吃?
EN

Stack Overflow用户
提问于 2010-12-16 10:25:10
回答 3查看 5.8K关注 0票数 11

我有一些相当简单的动画(移动文本,移动椭圆等)。并运行在全屏(1920x1080减去任务栏),WPF性能套件报告一个良好的框架大约50个FPS整个动画。脏重加在300 rect/s左右,SW帧在0到4之间,HW帧在3到5之间,视频内存使用量在80 MB左右。

​

​

问题是动画每隔半秒钟就会结巴一次。它绝对不是流动的

我的机器是一台新的戴尔笔记本电脑XPS 15,带有2GB内存的GeForce GT 435。-司机是最新的。(同样的行为也发生在我的上网本(全屏)上,所以我不认为它与硬件有关。)

如果我把窗户变小,口吃就会消失。

口吃发生在最简单的动画中--即使只有几个元素,但添加更多的元素肯定会使它更加引人注目。

我怎样才能找出造成口吃的原因?

当我想到它的时候,我还没有看到任何WPF动画在全屏幕上顺利运行。这有可能吗?

EN

回答 3

Stack Overflow用户

发布于 2012-07-10 13:45:28

你有没有尝试设定一个较低的“最大帧速率”到动画?

代码语言:javascript
复制
<Storyboard Timeline.DesiredFrameRate="10">
    <!-- ....blah blah blah  -->
</Storyboard>

如果动画导致大量重新计算子元素或父元素,更改DesiredFrameRate将对系统所做的计算数量产生级联效应。另外,请查看此链接的“备注”部分。它解释了为什么/什么时候你应该使用它。

如果设置较低的帧速率可以解决口吃问题,则需要考虑简化XAML,以限制动画的每个帧所需的重新计算量(限制动画所做的每个帧/更改所调整的子对象或父对象的大小--或以任何方式影响的对象的数量)。

您可能还需要查看"WPF性能套房。这是一组很棒的工具,可以确定WPF应用程序中到底发生了什么,查看窗口的哪些部分被重新绘制,何时重新绘制,以及每个XAML元素的CPU使用情况!“

希望这能有所帮助!

票数 8
EN

Stack Overflow用户

发布于 2012-05-02 00:12:55

帕特里克

我没有答案。我所能做的就是提供一些团结。我试着给ItemsControl动画。这个概念非常简单,真的。我有一个ListView,在ListView里我有一个GridView。我希望随着底层列表的排序,GridView中的项能够顺利地从一行转到另一行,因此,例如,当列表中的值发生变化时,排序列表将保持排序。

我注意到这一点:中等复杂的控件上的动画是CPU的霸主。我非常肯定的口吃只是与CPU正被耗尽有关(我注意到您没有在上面的转储中提供CPU图)。保持CPU在50%左右,动画看起来光滑,超过75%,你会得到这些口吃。仍然在研究这个问题,但我认为它比我的代码更深入。

完成

票数 2
EN

Stack Overflow用户

发布于 2016-08-23 02:58:13

我有一个类似的问题,它是口吃,没有真正的大,只是看上去像小口吃,到处我运行程序。凭一种预感,我关闭了谷歌Chrome的运行和修复,滚动变得完全顺利.

所以我的建议是,如果你有任何互联网浏览器打开检查,看看关闭他们是否解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4459678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档