【发布时间】: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 xaml 和baml(相反)。我真的不明白你在测量什么性能。如果您的 xamls 加载缓慢(也许您在窗口上创建实例时放置了太多资源来加载或做太多事情),这是架构问题。
标签: c# wpf xaml xamlreader