代码改变世界

WP7 App性能优化(12):检测应用程序性能(Ⅴ)

  MagicKing110  阅读(952)  评论(1编辑  收藏  举报

透视填充率示例

该示例展示了平面投影、透视转换对应用程序性能的影响。设计师创建的XAML经常会包含很多的透视转换用以创建漂亮的视觉效果,但是这会影响应用程序的性能。该示例演示了透视和动画的缓存行为。不带动画的透视转换会自动缓存,因而添加动画不会进一步影响性能。然而,为不带透视转换的矩形添加动画则会影响性能。

下载示例代码

如果你运行此示例,你会看到四个按钮:

  • Add-添加一个随机的矩形
  • Dlt-删除最近添加的一个矩形
  • Persp-切换是否对矩形应用透视转换的开关
  • Animate-切换矩形是否加动画效果的开关

要测试此示例,尝试以下操作:

  • 添加几个矩形直到中间小方块的动画开始卡屏,然后点击透视按钮切换。此时会看到卡屏现象消失了,因为矩形不再缓存了。矩形和页面上的按钮及文本共享一个单独的图形表层。知道应用了透视,Silverlight自动为每个矩形放置了T:System.Windows.Media.BitmapCache,这就增加了一个会影响填充率的表层。
  • 添加几个矩形直到中间小方块的动画开始卡屏。单击Animate按钮,注意到卡屏程度并没有增加。因为不带动画的透视已经自动缓存了,所以在其上添加动画不会增加任何新创建的纹理。比较在不带透视的矩形上切换动画的情况。如果除了小方块外没有应用任何透视和动画,那么你可以添加任意多的矩形也不会使方块的动画卡屏。因为这些矩形都没有缓存,他们仍然和按钮及文本共享同一个表层。然而,一旦对这些矩形应用了动画,他们就会被自动赋予一个位图缓存,那么就必须为每一个矩形的图形区域付出相应的填充率。

Ff967560.9fcae103-a309-455a-87ed-b805cee783f7(en-us,VS.92).png

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示