gpt4 book ai didi

wpf - 如何知道为什么动画会口吃?

转载 作者:行者123 更新时间:2023-12-03 15:06:10 26 4
gpt4 key购买 nike

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

WPF Performance screen shot

问题是动画每隔半秒就会断断续续。它绝对不是流动的:-(

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

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

最简单的动画会出现卡顿 - 即使只有几个元素,但添加更多元素肯定会使其更加引人注目。

我怎样才能找出导致这种口吃的原因?

回想起来,我实际上并没有看到任何在全屏下流畅运行的 WPF 动画。这甚至可能吗?

最佳答案

您是否尝试为动画设置较低的“最大帧速率”?

<Storyboard Timeline.DesiredFrameRate="10">
<!-- ....blah blah blah -->
</Storyboard>

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

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

您可能还想查看“ WPF Performance Suite”。这是一组很棒的工具,可以确定您的 WPF 应用程序中究竟发生了什么,查看窗口的哪些部分正在重新绘制以及何时重新绘制,以及每个 XAML 元素的 CPU 使用率!

希望这可以帮助!

关于wpf - 如何知道为什么动画会口吃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4459678/

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