积极答复者
wpf制作动画,在用到storyboard做出来的简单动画循环,一个循环东环就占用 CPU资源10%左右。

问题
-
我用blend4建了一个项目是usercontrol,想模拟运输线体做动画(就是在一个线体上有6个托板在运行, <Storyboard x:Key="SD" RepeatBehavior="Forever">。。。)。然后通过elementhost控件,在form上显示,但是就这么一个简单动画就占用 cpu10%,如果在这个动画里在添加其他动画,cpu 占用就更多了起码在30-40之间,有没有办法解决这个问题呢?
- 已移动 Leo Liu - MSFT 2011年6月3日 7:32 Moved for better support. (发件人:Visual C#)
答案
-
我和同意Jarrey的观点,CPU的占用率瞬间100%也是比较正常的,系统本身需要加载一些资源和编译等其它逻辑操作,都是需要CPU资源的。我们不能光看着CPU占用率就说动画不好。假如说CPU 为 0% 我反而会认为程序是有问题的,当然这个只是个玩笑话。
你的动画在执行时 20%的占用已经很低了,在多线程操作下,到达80%也不为过。关心一个程序的健康状况,不是靠CPU一个指标的,我们要综合看。要包括 异常出现情况,内存占用率,页面交换频率,以及网络使用情况。这些数据而且不能光看一时的,要长时间的来衡量。短期峰值出现是很正常的,也许你的系统由其它程序在影响,也许短期系统为了你的程序要实现什么功能,准备资源等,都是会产生峰值。
所以我的主旨是,不要太过于担心这些局部的数据,你要综合考虑。如果担心WPF性能的,你可以用WPF Performance Tool来检测和调试,下面这一些列是官方给出的优化建议,你可以看一下: http://msdn.microsoft.com/zh-cn/library/aa970683.aspx
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Jie BaoModerator 2011年6月8日 14:53
全部回复
-
我和同意Jarrey的观点,CPU的占用率瞬间100%也是比较正常的,系统本身需要加载一些资源和编译等其它逻辑操作,都是需要CPU资源的。我们不能光看着CPU占用率就说动画不好。假如说CPU 为 0% 我反而会认为程序是有问题的,当然这个只是个玩笑话。
你的动画在执行时 20%的占用已经很低了,在多线程操作下,到达80%也不为过。关心一个程序的健康状况,不是靠CPU一个指标的,我们要综合看。要包括 异常出现情况,内存占用率,页面交换频率,以及网络使用情况。这些数据而且不能光看一时的,要长时间的来衡量。短期峰值出现是很正常的,也许你的系统由其它程序在影响,也许短期系统为了你的程序要实现什么功能,准备资源等,都是会产生峰值。
所以我的主旨是,不要太过于担心这些局部的数据,你要综合考虑。如果担心WPF性能的,你可以用WPF Performance Tool来检测和调试,下面这一些列是官方给出的优化建议,你可以看一下: http://msdn.microsoft.com/zh-cn/library/aa970683.aspx
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Jie BaoModerator 2011年6月8日 14:53