WPF:关于Animation的CPU消耗
2012-06-13 20:38 木木子 阅读(2024) 评论(3) 编辑 收藏 举报当前开发的项目中,CPU消耗一直维持在20-30%,再加上内存泄露这事儿,真是很头疼的事。项目组内的同事都为这事忙活着。
项目中的主要展示界面是用WPF完成的,有涉及到动画,主要是有几个滚动条,来标记这几个模块正在进行。刚开始,用了GIF来简单的显示,用的也挺好的。之后在内存泄露这事件中,被做排查工作的同事揪了出来:一直在耗内存啊!然后,用了WPF的Animation模仿了GIF的效果。显示效果之类的都没有问题,但CPU的使用高达30%!!!很吃惊,为什么简简单单的滚动条动画这么吃CPU呢。
好在,我这人很固执。开始一边度娘一边谷哥。发现了这么一篇简短的文章:“WPF: Reducing CPU consumption for animations”.文章中提到:WPF的Animation默认使用60帧一秒,相当的高啊,这就是吃CPU的原因了。
简单的代码实现为:(一般放在应用程序的开始函数中)
Timeline.DesiredFrameRateProperty.OverrideMetadata(
typeof(Timeline),
new FrameworkPropertyMetadata { DefaultValue = 20 }
);