【问题标题】:Profiling WPF applications - rundown of all methods分析 WPF 应用程序 - 所有方法的概要
【发布时间】:2011-11-02 17:21:45
【问题描述】:

我在分析我的 WPF 应用程序时遇到问题。

情况如下:任何用例都会如下:输入值 -> 点击“计算值” -> 加载... -> 显示值。

在“正在加载...”阶段,有两个阶段:

  • 一个纯粹的数学阶段,非常优化
  • “WPF 正在绘制您的控件”阶段,这是……嗯……很长。

我在这里要做的是分析应用程序以具有 TreeView:功能、经过的时间、调用次数。 我通常使用 Visual Studio 分析器(主要是因为我的公司不想为一个好的分析器付费。要求人们优化性能,不要给他们任何好的分析器,让我们礼貌地说这是一个很好的公司政策)。 问题是这个分析器在 WPF 系统函数(draw、MeasureOverride、measureLength....)之前不会运行。

我使用了 JetBrains 的 dotTrace 一段时间(10 天试用......嗯),这真的很棒,因为即使在最精确的情况下(在数据网格,计算一个单元格宽度所用的时间......)。 Ants 似乎没有配置 WPF(它只显示“托管代码”......)

所以现在,我的 Visual Studio 分析器停在一个为 Visiblox 图表定义 Xaxis 的函数处。它只是告诉我 WPF 大约需要 2.3 秒来“定义 XAxis”,而 2.3 秒实际上是绘制所有网格和图形所花费的全部时间

你们知道有什么办法可以发挥作用的分析器(或 VS 分析器中的设置)吗?

非常感谢!

【问题讨论】:

    标签: wpf profiling


    【解决方案1】:

    【讨论】:

    • 已经做了,除非我不是很懂怎么用,否则我没有找到详细的通话清单。但这有助于我弄清楚我应该在 UI 中改进什么!
    【解决方案2】:

    在这里记录。 你认为你想要一个树视图,包含经过的时间、呼叫计数等, 但是您需要通过找到可以解决的问题来优化应用程序,以消除不必要的挂钟时间。 Here's an example of what works best, in my experience.

    某些东西很容易占用大量时间,它不一定局限于特定的例程、特定的代码行或调用树中的特定路径。 无论它在哪里,该方法都能找到它。 更重要的是,它不会费心测量超出找到问题所需的最低限度的问题。 但是,如果您真的觉得需要购买或安装某些东西,那对您没有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2012-07-19
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      相关资源
      最近更新 更多