gpt4 book ai didi

c# - 如何衡量通用 Windows 应用程序中的 XAML/UI 性能?

转载 作者:太空狗 更新时间:2023-10-29 21:49:20 25 4
gpt4 key购买 nike

我正在 Visual Studio 中使用“空白应用”Visual C# 模板构建通用 Windows 应用 (UWP)。我想在运行我的应用程序时测量两个数据点:

  • 在创建/更改 XAML 元素后,U​​I 需要多长时间才能完全更新?
  • 无论更改是否反射(reflect)在 UI 中,程序在内部处理 XAML 元素需要多长时间?

对于第一点,假设我正在创建一个应用程序,其中有 5 个 ToggleSwitches 在 MainPage.xaml 中定义为 XAML。我想测量 UI 显示所有 5 个 ToggleSwitch 需要多长时间。我在 MainPage.xaml.cs 中的 this.InitializeComponent() 命令之前放置了一个秒表计时器(因为我假设这是设计器 XAML 元素开始处理的地方)。我想在窗口正确绘制后立即停止计时器。我已经对 XAML 元素的 Loaded 和 LayoutUpdated 事件进行了试验,但都没有在 UI 更新时触发。将计时器放在哪里以获取我要查找的数据?如果我在调试器中单步执行代码,“跳过”哪一行代码会导致 UI 刷新?

对于第二点,我只是想记录计算机内部处理XAML代码需要多长时间(不包括渲染UI、运行组合引擎、使用Direct3D处理——只处理XAML)。我的第一直觉是简单地在 this.InitializeComponent() 之前启动 Stopwatch,然后立即结束。但是,我没有看到基于页面内容的数据发生变化。例如,无论我使用 XAML 设计器上定义的 100 个 ToggleSwitch 还是 5 个 ToggleSwitch 来运行我的应用程序,this.InitializeComponent() 方法都需要相同的时间。我有什么想法可以更好地衡量这个数据点吗?

非常感谢任何帮助。

最佳答案

Application Timeline 工具可能会帮助您(随 Visual Studio 2015 提供)。

Timeline
(来源:s-msft.com)

使用应用程序时间线工具分析 UI 响应能力 https://msdn.microsoft.com/en-us/library/dn957934.aspx

关于c# - 如何衡量通用 Windows 应用程序中的 XAML/UI 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com