performance - 如何解释 UWP Store App 的 Visual Studio 2019 性能配置文件
问题描述
我们有一个 UWP 应用程序已在 Microsoft Store 中销售 7 年以上。我们的最新版本比商店中的以前版本慢得多,尽管调试性能很好。例如,现在导航到一个页面需要 10-30 秒。在调试中需要 1-2 秒。在商店的早期版本中,它需要 1-2 秒。
我运行了商店应用程序。在 Visual Studio 2019 中,我将性能分析器附加到正在运行的应用程序并导航到作业页面。
在 10 秒内捕获了 9940 个事件。CPU 使用率显示 77% 内核、11% UI、11% 图形
事件主要是 Windows Kernel 和其他 Windows dll。如果我单击 Just My Code,我会看到相同的事件列表。热路径是
ntdll.dll 89% cpu
kernel32.dll 89% cpu
SHCore.dll 79% cpu
ApplicationFrame.dll 33% cpu
我可以向下钻取,但我看到的只是更多的 Windows dll。我如何使用这些信息来找出为什么这个应用程序的当前版本在导航到这个页面时比以前的版本慢得多。
编辑我还在商店的以前版本上运行了性能分析器。收集了相似数量的事件,但热路径是:
[External Code] 100% cpu
我们可以做些什么来改变同样导航的热路径?这与商店为发布而构建的方式有关吗?
解决方案
推荐阅读
- db2 - SP 问题中的 DB2 游标
- python - 如何让 email.utils.formataddr 显示带有 twisted.mail.smtp.sendmail 的发件人姓名?
- photoshop - 如何根据一个特定调整大量图像的颜色?
- sql-server - 如何解决 Msg 8115, Level 16, State 8, Line 25 将数字转换为数据类型数字的算术溢出错误
- node.js - Express 上下文中箭头函数的代码覆盖率
- node.js - PhantomJS 和 NodeJS 中的请求在特定网页中不起作用
- c++ - 我有一个未定义的 C++ 程序参考,不知道如何处理它
- facebook - 不在facebook oauth登录中检索电子邮件
- buffer - Metal 实例渲染——几个问题
- c++ - 如何正确读写二进制文件?(C++)