【问题标题】:What are some performance tips when making Windows Phone 7 applications?制作 Windows Phone 7 应用程序时有哪些性能提示?
【发布时间】:2011-02-06 15:09:08
【问题描述】:

【问题讨论】:

  • 我已经为 iPhone 编写了一个成功的应用程序,我必须实现的唯一两个性能优化是不要一次在 Internet 上加载太多数据,并且要加载一个巨大列表的图像异步。现在我正在为Phone 7 实现相同的应用程序,我不得不意识到Phone 7 有很多具有性能问题的内置组件(列表框、进度条、复杂布局等)。不幸的是,这里的这个问题很有意义。
  • 根据FAQExpert programmers interested in professional discussions on software development这个问题属于程序员。在FAQ中也提到:I would like to participate in a discussion about ______不应该在这里问...
  • 这应该是社区 Wiki 帖子。你至少也应该有一些答案。例如,请参阅 SO 上的任何“入门”页面。 stackoverflow.com/questions/3402466/…
  • 最好使用自动代码分析器来定位代码中的性能热点。对于 WP7,目前只有一种分析器可用,即 EQATEC Profiler (eqatec.com)。

标签: performance windows-phone-7


【解决方案1】:

我为我的应用程序(尤其是对于使用 UI 线程的动画)发现的 #1 性能增强器是为所有 UIElements 手动设置 BitmapCache。这显着改善了所有动画。

【讨论】:

    【解决方案2】:

    常规

    • 如果您的应用加载速度非常快,请摆脱
      关闭启动画面。
    • 压缩包中的代码生成 框架不一样 Windows 的代码。抖动优化为 跑得快,不生产最快 代码。
    • 属性只是 .Net 的一个函数 CF。

    银光

    • 尽可能多地从 合成器线程(用于回调 动画使用 BitmapCache)。
    • 使用 Canvas 或自定义弹出窗口代替 默认一个(Popup 类)——缺少 硬件加速。

    XNA

    • 对纹理和包使用 DXT 格式 将它们放入 1 个文件中(更快的加载和 更少的 GPU 纹理切换)。
    • 对于诸如游戏统计数据之类的事情,请避免 使用字符串(不可变)。 SpriteBatch.DrawString 可以采用 StringBuilder 直接用于绘图 文本。
    • 避免使用/滥用 LINQ 和 foreach (它可能会导致垃圾)。 使用锯齿状数组(数组的数组)而不是二维数组。

    【讨论】:

    • 什么是自定义弹出窗口?什么是回调动画?
    【解决方案3】:

    我几天前发现了这个 WP7 best practices - Performance

    它主要是文章的评论链接(其中一些前面提到过)和来源(如 Jeff Wilcox 性能进度条)。

    请记住:列表框对于 WP7 性能就像氪石 =)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多