监视填充率
填充率是每一帧Silverlight传递给GPU构图的图形表层的像素数目。填充率实质上是GPU工作负载的一个度量。因此,应当随时了解自己的应用程序的填充率,以免其超出GPU的处理能力,而拖慢帧频。当应用程序的帧频超过2屏大小(每屏800*480)时,帧频将会开始降低。通常帧频的降低并不显著,除非填充率超过3.5屏的像素大小。可以通过观察帧频计数器的最后一个数字来判断当前帧频。重要的是要记住,UI线程的帧频永远不可能超过构图线程的帧频,因此如果填充率过高,将会影响应用程序的整体性能。
影响填充率的因素
每一个需要纹理的图形对象都会影响应用程序的填充率。纹理的像素数越多,填充率也越高。通常,影响填充率的有两个主要的因素。首先是基础表层,就是每一个未缓存对象周围的矩形。其次是缓存的所有元素,包括构图线程自动缓存的纹理,和开发者通过设置元素的位图缓存而缓存的元素。除了构图线程缓存的纹理,以下是其他一些自动缓存的元素.
- 平面投影的目标,无论是动态还是静态的
- T:System.Windows.Controls.MediaElement对象
- T:System.Windows.Controls.ListBoxItem对象
- T:System.Windows.Controls.ScrollViewer元素的子元素
推荐帧频和填充率
以下表格列出了在应用程序性能调优时要考虑的下限值、推荐值和上限值。要注意的是这些数值必须在真实的Windows Phone设备上测试,因为模拟器的性能是可变的。当没有动画更新UI时,帧频计数器有时会变为0。如果想在任何时候都看到数值,可以在开发测试期间在程序中添加一个不断循环的简单动画。在准备发布程序时可以将这个动画移除。
计数器 |
下限 |
推荐值 |
上限 |
---|---|---|---|
Composition Thread Frame Rate |
30 Frames/Second |
60 Frames/Second |
120 Frames/Second |
UI Thread Frame Rate |
30 Frames/Second |
120 Frames/Second |
120 Frames/Second |
Screen Fill Rate |
1.5 |
Less than or equal to 2.5 |
3.0 |
来源:https://www.cnblogs.com/magicboy110/archive/2010/12/26/1917357.html