高CPU使用率Windows Phone 8 - SystemManaged Function

时间:2013-05-08 12:12:03

标签: c# performance memory-management windows-phone-8

我目前正在WP8 App上使用Store TestKit。

我有一个Pivot。一个PivotItem有几个元素,比如TextBox,它被绑定到我的ViewModel(MVVM-Pattern)。无论如何,当我点击在UI中安静下来的TextBox时,动画不流畅。

Store TestKit中的错误是“由于CPU绑定动画导致的低帧速率” 所有MY方法都使用max。 20%cpu,但这个需要~80%:

http://www.imgbox.de/users/public/images/5AYadyGRAd.png

(Systemeigene Funktion = System Managed Funktion

Stichprobe =样品)

如何降低价值?因为它不是我创建的函数,所以我不能使用Thread。我看过这篇文章http://www.expressionblend.com/articles/2012/03/23/wp7-performance-tip-translate-transforms/。它描述了我的问题,但没有给出解决方案。

这是我的ViewModel中的属性:

private string _myval;
public string MyVal
{
    get { return _myval; }
    set
    {
        _myval = value;
        RaisePropertyChanged(() => MyVal);
    }
}

但财产不是问题......

1 个答案:

答案 0 :(得分:1)

好的哇,这家伙的好文章:

http://fiercedesign.wordpress.com/2012/08/14/windows-phone-performance-best-practices/

阅读主题“重绘区域”

如果UI不流畅/流畅,您必须每次都要检查UI正在重绘哪些元素。您可以通过转到App.xaml.cs并启用重绘区域

来完成此操作
Application.Current.Host.Settings.EnableRedrawRegions = true;

如果某个区域或元素闪烁,则表示出现问题。尝试添加

CacheMode="BitmapCache"

到您的元素。

我的应用中有很多颜色闪烁。 UI重新绘制,即我的TextBlocks,即使我没有改变它。我所要做的就是改变所有元素(尤其是TextBlocks和Grids):

<TextBlock CacheMode="BitmapCache"/>

该应用程序现在正在流动。