【问题标题】:Performance of Silverlight Datagrid in Silverlight 3 vs Silverlight 4 on a macSilverlight Datagrid 在 Mac 上 Silverlight 3 与 Silverlight 4 的性能对比
【发布时间】:2011-01-15 10:57:56
【问题描述】:

我将 Silverlight Beta 4 用于 LOB 应用程序。

在今天发现我必须wait perhaps 4 months 才能在 Visual Studio 2010 上使用 SL4 进行开发后,我想我需要将我的应用程序降级到 SL3 但thats another question

问题是,当我在 Mac 上运行时,我注意到在 PC 上运行良好的简单数据网格的性能绝对差强人意。这些网格仅包含 5-10 列和可能 50 行。有时上下翻页大约需要 1-2 秒。

我会很感激任何人的经验,以下哪个是最佳解决方案:

  • 恢复到 Silverlight 3 并希望 DataGrid 更快
  • 切换到第三方数据网格,例如 Telerik
  • 完全忘记银光

我希望可能会更新 SL4 运行时,但这可能在 3-4 个月内不会发生。

提醒一下 - 这具体是一个 mac 问题。我的 PC 上的性能虽然最初填充网格的速度有点慢,但还不错。

【问题讨论】:

    标签: silverlight datagrid


    【解决方案1】:

    Silverlight 4 RTM 似乎显着提高了 Mac 上 DataGrid 的性能。 对于大致相同的机器,现在 Mac 和 PC 之间没有明显的区别。

    耶!

    当复杂的 silverlight 数据网格无所事事时,RTM 的变化也显着降低了 CPU 使用率。

    【讨论】:

      【解决方案2】:

      安装Windows Phone 7 SDK(Windows Phone 7 使用 SL 4)后,我似乎可以选择在 VS 2010 RC 中创建 Silverlight 4 项目...至少,我可以创建一个新的 Silverlight 项目,并且在项目属性,它默认为“Silverlight 4”作为目标 Silverlight 版本。

      【讨论】:

      • downvoter - 使用 SL4 和 VS2010 是问题的一部分。我说错了吗?
      【解决方案3】:

      尚未能够在 Mac 上对此进行测试,但将 FrameRate 设置为较低的值会显着降低 Windows 上的 CPU 使用率。希望每秒不必要地重绘多次是它在 mac 上缓慢的原因。

         Application.Current.Host.Settings.MaxFrameRate = 15;  // or lower
      

      【讨论】:

      • 在 mac 上似乎没有太大区别 - 但在 windows 上提高了性能
      • 在 SL4 RTM 上似乎不再重要。看起来它比以前更聪明了,不会不必要地重绘自己
      【解决方案4】:

      我看到了相同的性能差异。在 Windows 上快速滚动。在 Mac 上滚动缓慢。

      我将windowless=true设置为参数:

      <object id="xaml" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
        <param name="windowless" value="true" />
      </object>
      

      没有任何区别。

      【讨论】:

        【解决方案5】:

        如果您在 PC 上以无窗口模式运行应用程序,您是否会遇到相同类型的性能问题? Silverlight 插件在 Mac 上始终以无窗口方式运行,我认为这可能是您的性能问题的罪魁祸首。无窗口模式将渲染委托给浏览器,这需要为每一帧交错浏览器/插件内容。这在计算上可能会很昂贵,并且会导致某些应用程序出现性能问题。更多关于limitations of windowless mode here

        如果您在 PC 上看到无窗口模式下的性能问题,我认为 SL3 与 SL4 不会有任何区别,并且您将在其他方面进行优化。另外,您是否使用 DataGrid 上可用的 UI 虚拟化?

        【讨论】:

        • 不使用 UI 虚拟化。我现在不在 mac,但我很确定它可以在浏览器中运行或在浏览器外运行。我会检查两种模式下的性能是否不同
        • 我所说的与浏览器外无关。它是无窗口模式属性,您可以在其中将 windowless = true 设置为承载 Silverlight XAP 的对象标记的参数。我的意思是,无论您设置什么,该插件都会在具有性能缺陷的 Mac 上以无窗口模式运行。我的建议是在您的 PC 上设置 windowless = true 作为测试,看看您是否看到相同的性能问题。
        【解决方案6】:

        我刚刚在几家主要供应商的网格之间进行了试验,Microsoft 和 Telerik 网格在性能方面都表现出色(在渲染绑定数据、排序等方面,它们的时间非常相似) .

        所以我建议您的性能问题与 SL4 相关,而不是组件 - 更改为第三方网格,虽然它看起来比 MS 网格更漂亮,但不会解决您的问题。

        【讨论】:

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