了解见解(预览)
[本主题是预发行文档,有可能会有所更改。]
性能见解按以下类别分发见解:
总体性能
此见解将应用的整体性能总结为见解 ID Perf.Summary.Overview 下的执行摘要。
通过此见解,您可以根据严重性查看应用的整体性能。
- 严重:表示性能不佳。
- 警告:表示可以提高性能。
- 信息:表示性能良好。
如何改进
当需要优化应用时,您可以查看客户端、网络、自定义类别以及插件、savedQeury 和设置的详细见解。 通过查看这些见解,可以得出一些可操作的项目。
当前环境
当用户在其设备上体验 Power Apps 应用时,有几个因素可能会影响性能,例如浏览器类型、浏览器版本和硬件规格。 在本节中,您可以看到哪些见解会检查客户端环境。
浏览器类型
见解 ID:Perf.Environment.Client.Browser.Type
动机
某些 Web 浏览器类型可能会影响您的应用的性能。 使用不受支持或非现代浏览器可能会导致性能下降。 此见解提供了不同浏览器的性能影响,尤其是非推荐的浏览器。 例如,Power Apps 已弃用它的支持 Internet Explorer。
如何改进
如果您的用户使用旧浏览器(例如 Internet Explorer),请切换到基于 Chromium 的现代浏览器。 我们建议用户运行现代浏览器,例如 Microsoft Edge 或 Google Chrome。
备注
一些利用 NPAPI 的旧应用只能在 Internet Explorer 上运行。
浏览器版本
见解 ID:Perf.Environment.Client.Browser.Version
动机
此见解会检查有多少用户通过旧版浏览器使用您的应用。 即使用户运行的是现代浏览器,而不是非推荐的浏览器类型(如 Internet Explorer),旧版本的浏览器的执行速度仍然较慢。
如何改进
用户应定期将浏览器更新为最新版本。 企业客户可以将组策略应用于特定版本。 由于 Unified Service Desk (USD) 也使用计算机的默认浏览器设置,因此它还需要检查默认浏览器的类型和版本。
最低系统要求
见解 ID:Perf.Environment.Device.MimimumRequirements
动机
此见解检查用户的环境是否满足最低系统要求。 您可以检查 Web 应用程序要求,以查看取决于应用类型的最低系统要求。
通常,某些活动(如呈现、脚本编写和下载内容)在客户端上发生。 对于此类活动,必须满足最低系统要求。
如何改进
用户应使用满足或超过 Power Apps 最低系统要求的硬件。
HTTP 协议
见解 ID:Perf.Environment.Client.Browser.HttpProtocol
动机
Power Apps 平台支持 HTTP/2。 但是,如果您的应用对 Power Apps 上的 XMLHttpRequest (XHR) 请求使用 HTTP/1.1 协议,则可能会由于 HTTP/1.1 协议的请求并发限制而导致性能下降。
如何改进
如果此见解确定了一些使用 HTTP/1.1 协议的用户,那么我们强烈建议这些用户的客户端支持 HTTP/2 协议。
一些配置和网络基础结构可以阻止 HTTP/2 协议,例如 VPN 网络、代理服务器或设备 Internet 选项设置。
用户可以从浏览器附带的开发工具中检查使用的协议。 在下图中,通过 HTTP/2 发生了网络调用。
如果网络协议跟踪指示 HTTP/1.1,则可能是由于以下原因:
- Internet 设置:Windows 控制面板内“Internet 选项”的高级选项卡中的使用 HTTP2 和 使用 TLS 1.2 选项未启用。
- VPN 和代理:虽然 Windows 的“Internet 选项”设置为使用 HTTP2 和 TLS 1.2,但当 VPN 或代理不支持更新的协议时,浏览器可能会回退。
使用模式
此类别分析页面加载的类型。 热页面加载使用缓存和现有 DOM 对象呈现页面,而冷页面加载通过在需要时下载资源来呈现页面。 尽管用户不会区分页面加载的类型,但此见解会根据客户端上发生的页面加载类型进行分析并提供建议。
页面加载类型
见解 ID:Perf.Performance.PageLoadType
动机
热页面加载比冷页面加载更快,因为必要的资源从本地缓存加载。
备注
当用户从浏览器中的新选项卡打开窗体时,这被认为是冷页面加载。 当用户在浏览器活动选项卡内打开应用中的其他窗体时,这被视为热页面加载。
如何改进
若要体验页面加载的更快性能,可最大程度地减少打开的新选项卡或浏览器窗口。 尝试将活动保留在单个选项卡中,而不是打开新选项卡或浏览器窗口。 我们还建议不要在 InPrivate 或隐身模式下运行浏览器。
页面性能
在涉及页面类型时,许多第一方模型驱动应用由仪表板、视图 (EntityList) 和窗体组成。 默认情况下,用户会加载仪表板,但应用制造商和管理员可以更改此设置。 如果仪表板包含许多图表和磁贴,则可能会导致仪表板加载速度较慢。 同样,如果 EntityList 和窗体被自定义,以添加许多列并显示许多记录,这也会导致页面加载缓慢。 因此,检查每页和每个表的性能可能有好处,因为页面加载性能可能有不同的根本原因。
在本节中,您可以看到一些与页面性能相关的见解。
慢速仪表板
见解 ID:Perf.ModelDriven.Page.Dashboard.SlowSQLQuery
动机
慢速 SQL 查询或在仪表板中使用过多的图表和磁贴会导致仪表板性能不佳。 此见解指向受慢速 SQL 查询影响的仪表板。 记录此见解后,详细信息窗格会包含见解中所包括的每个仪表板的仪表板 ID。
如何改进
下面介绍如何使用仪表板 ID 查找仪表板的名称。 然后,您可以确定要考虑重新设计的仪表板。
转到您的模型驱动应用,例如 https://contoso.crm.dynamics.com。
通过向应用 URL 追加 api/data/v9.1/systemforms[DashboardId]/name 来修改 URL,如此示例 (https://contoso.dynamics.com/api/data/v9.1/systemforms[DashboardId]/name) 中所示。
您将收到类似于以下内容的 OData 请求。 下面显示的代理仪表板表示给定仪表板 ID 的用户友好名称。
{"@odata.context":https://contoso.crm.dynamics.com/api/data/v9.1/$metadata#systemforms(2ff4a8cf-378b-e811-a964-000d3a30dc0a)/name,"value":"Contoso - Agent Dashboard"}
具有慢速外部调用的同步插件
见解 ID:Perf.Sandbox.Performance.Plug-ins.ExternalCall
插件和自定义工作流活动可以通过 HTTP 和 HTTPS 协议访问 Web 服务(外部终结点)。 如果这些外部服务性能低下,插件本身将超时或性能低下。
动机
此见解将检查外部终结点的性能并检测应用程序中受缓慢外部调用影响的插件。
如何改进
详细信息:访问外部 Web 服务 (Microsoft Dataverse) - Power Apps | Microsoft Docs。
自定义
制作者可以使用模型驱动应用进行许多不同的自定义,例如:
- 引入自定义 JavaScript 函数以在客户端上启用事件。
- 构建和部署用于执行自定义逻辑的插件。
- 定义并存储自定义表和数据。
- 为自定义表和标准表定义依赖组件,例如窗体和视图。
从性能角度来看,在自定义不遵循最佳实践和建议的情况下,所有这些自定义都可能会导致应用响应不佳。 制作者可以在开发阶段运行解决方案检查器来验证他们的自定义项。
以下见解还提供了自定义运行时用户数据的分析结果。
XML HTTP 请求 (XHR) 调用类型
见解 ID:Perf.ModelDriven.Customization.Client.Script.XMLHttpRequestType
同步 XMLHttpRequest 调用可能会给最终用户带来严重的性能问题,尤其是在网络速度较慢或需要进行多次调用时。 当最终用户无法单击、滚动或与页面交互时,浏览器会冻结并且最终用户会感到沮丧。
此见解显示是否具有同步方法并指示相关性能。
动机
同步 XHR 调用将阻止浏览器执行更多工作,因为浏览器必须等待同步调用完成,这会导致页面变慢或完全冻结。
如何改进
我们建议您将见解的数据部分中提及的顶级方法从同步更改为异步。 更多信息:通过从同步请求转移来增强模型驱动应用
已弃用的控件
见解 ID:Perf.Customization.Controls.Deprecated
已经弃用了模型驱动应用的一些旧控件,如翻转开关、日历控件 (V1)、线性滑块、径向旋钮、弧形旋钮、线性仪表;以及网站预览控件、MultiSelectPicklistControl (V1) 和翻转标签。 其中一些控件可以替换为新控件,这些控件更符合心目中的现代 Web 和移动设备。 详细信息:新模型驱动应用控件,弃用旧控件
动机
使用过时控件可能会导致性能、可靠性和辅助功能问题。 此外,已使用新控件解决了这些弃用控件中的一些限制。 例如,切换控件和日历控件 (V2) 使用 Microsoft Fluent UI。
如何改进
- 使用切换控件替换翻转标签和翻转切换。
- 使用日历控件 (V2) 作为日历控件 (V1) 的替换项。
- 评估其他弃用控件,以确定它们是否仍可用于现有窗体。
请注意,弃用的版本和新控件之间的重大设计变化很少。
有关弃用控件的更多信息,请转到模型驱动应用控件弃用。
沙盒性能 - 主要插件
见解 ID:Perf.Sandbox.Performance.Plug-ins.Dominant
此见解将帮助您识别主要插件,即最常用的插件。 它还将指示是否有任何主要使用的插件执行速度很慢,并且在第 95 个百分位数中执行时间超过 100 毫秒。 此见解最多将列出三个主要插件。
动机
缓慢的主要插件会影响性能。 应该调查这些插件。
如何改进
调查执行速度慢的插件。查看有关插件和工作流开发的最佳实践。
若要进一步调查插件速度慢的原因,您可以在开发或测试环境中将插件跟踪日志设置设为所有,并确定延迟位置。 但是,在投入生产之前,不要忘记禁用该设置。 更多信息:跟踪和日志记录
调查执行速度慢的插件。下面介绍了插件速度慢的一些原因:
- 关联的 SQL 查询执行速度很慢,因此插件执行时间有所增加。
- 遵循插件的单一责任原则,并且不要进行具有重要事务边界的事务。
- 插件可能会进行一些外部调用,这些调用速度很慢。
- 未针对多线程环境优化插件逻辑。 请检查您的节点。
若要进一步调查插件速度慢的原因,您可以在开发或测试环境中将插件跟踪日志设置设为所有,并确定延迟位置。 在投入生产之前,不要忘记禁用该设置。 更多信息:跟踪和日志记录
使用前导通配符的已保存查询
见解 ID:Perf.ModelDriven.Customization.SavedQuery.LeadingWildCard
前导通配符是在搜索字符串开头使用通配符 (%) 的像或不像条件。 写得不好的请求的一个例子是:
<fetch version="1.0" output-format="xml-platform" mapping="logical">
<entity name="account">
<attribute name="accountid" />
<attribute name="accountnumber" />
<filter type="and">
<condition attribute="accountnumber" operator="like" value="%124" />
</filter>
</entity>
</fetch>
动机
已保存查询中的前导通配符 (%) 可能会导致查询超时或执行缓慢。 此见解指向这种带有前导通配符的缓慢保存查询。
如何改进
避免使用前导通配符。 在搜索密钥中,这些在 SQL Server 中被转换为“包含”,这不会利用索引查找,但会进行扫描。 如果需要使用前导通配符,请通过包含其他条件来限制搜索范围。 请注意,可以在搜索字符串的末尾使用尾随通配符 (%)。
配置
插件跟踪日志设置
见解 ID:Perf.Sandbox.Configuration.PluginTraceSettings
创客可以通过插件跟踪日志调试他们的插件。 Dataverse 管理员可以将插件和自定义工作流活动跟踪设置为关、异常或全部。
动机
只有在调试或调整插件时,插件跟踪日志才应设置为全部。 大量的跟踪日志记录会导致 SQL Server 的 I/O 开销。 此外,删除插件跟踪日志可能会导致 SQL Server 阻塞或等待。
如何改进
在您的生产实例中,如果此设置为全部并且您的插件生成的日志量很大,则考虑将其更改为“异常”。
若要更改该设置,请转到设置 > 管理 > 系统设置 > 自定义选项卡。详细信息:日志记录和跟踪
网络
网络性能
网络吞吐量和吞吐量是影响最终用户体验的重要因素。 具有高延迟和低吞吐量的用户在访问统一接口时更有可能遇到性能下降的情况。 此见解告诉我们有多少用户在使用性能不佳的网络,以及他们的性能如何。
动机
网络配置不佳会影响应用性能。
如何改进
如果网络用户较多,性能较差,建议用户切换到性能较好的网络。