【问题标题】:What is the best way to measure xaml loading/parsing performance衡量 xaml 加载/解析性能的最佳方法是什么
【发布时间】:2015-01-12 08:58:23
【问题描述】:

我有几个 xaml 文件在我的整个应用程序中使用。我希望编写单元测试来测试每个 xaml 文件的性能,换句话说,加载/解析和渲染其中一个窗口(使用某些 xaml 文件)需要多长时间。

我发现 XamlReader 类(我认为)正是这样做的。但是,我知道Application.LoadComponent()(在 System.Windows 中)也可以用于类似的事情。如果您必须测试解析整个 xaml 文档需要多长时间,您会使用什么? XamlReader.Load() / XamlReader.Parse()Application.LoadComponent(),还是完全不同的东西? 在这种情况下,最好的行动方案是什么?

另外,由于我在以编程方式进行性能测试方面经验不足,因此测量加载时间的好方法是什么,System.Diagnostics 中的秒表类是否合适?

【问题讨论】:

  • 你在你的问题中搞砸了很多东西。要创建和测试窗口,请使用 baml (xaml+cs)。 XmlReader 只做部分工作,其中大部分是创建对象和连接事件。您不对性能进行单元测试,但您在现有应用程序上使用分析器。 StopWatch 非常适合测量性能关键代码的多次迭代。
  • 感谢您的评论。所以,如果我只想测试从 xaml 代码创建 xaml 对象的速度,XamlReader 类及其方法就足够了?
  • 参见loose xamlbaml(相反)。我真的不明白你在测量什么性能。如果您的 xamls 加载缓慢(也许您在窗口上创建实例时放置了太多资源来加载或做太多事情),这是架构问题。

标签: c# wpf xaml xamlreader


【解决方案1】:

试试System.Diagnostics.Stopwatch。您可以在执行代码之前启动此秒表,并在完成时停止它。

您的代码将如下所示:

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Your code here!!!
stopwatch.Stop();
Console.WriteLine("This took " + stopwatch.ElapsedMilliseconds + " ms.");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2019-09-16
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多