了解画布应用执行阶段、数据调用流和性能监视

当用户打开画布应用时,在显示任何用户界面之前会经历几个执行阶段。 应用加载时,它会连接到不同的数据源—如 SharePoint、Microsoft Dataverse、SQL Server(本地)、Azure SQL 数据库(联机)、Excel 和 Oracle。

在本文中,您将了解这些不同的执行阶段、如何将应用连接到数据源,以及可用于监视性能的工具。

画布应用中的执行阶段

画布应用在向用户显示界面之前会经历以下执行阶段:

  1. 对用户进行身份验证:无论应用需要什么连接,在用户首次使用凭据登录时进行提示。 如果该用户再次打开应用,系统可能会再次提示该用户,具体取决于组织的安全策略。

  2. 获取元数据:检索元数据,例如运行应用的 Power Apps 平台的版本以及必须从中检索数据的源。

  3. 初始化应用:执行 OnStart 属性中指定的任何任务。

  4. 呈现屏幕:通过应用使用数据填充的控件呈现第一个屏幕。 如果用户打开其他屏幕,则应用会使用相同过程呈现这些屏幕。

画布应用中的数据调用流

来自画布应用的数据调用通过使用 OData 协议上的连接器将数据发送到表格数据源。OData 请求流向后端层以联系目标数据源并为客户端检索数据,或将数据提交到数据源。 支持 API 的基于操作的连接器以相同的方式工作。

了解 OData 和 API 请求如何在画布应用中传输有助于您优化画布应用性能以及后端数据源。

在本节中,您将了解数据调用如何在具有不同数据源类型的画布应用中流动。

具有联机数据源的数据调用流

下图显示了画布应用中的典型数据请求(左侧)如何经过服务器端层,到达目标数据源(右侧),然后将数据返回到客户端。

除 Dataverse 的连接器以外的所有连接器的典型数据调用流。

上图中的每个层在处理请求时可以快速执行,或遇到一些开销。 在很多应用中,两个特定位置通常可能会出现明显的开销:

  • 后端数据源,处理请求时。

  • 客户端,在发送请求时—或在堆内存上处理收到的数据,并执行关联的 JavaScript 函数以处理要在屏幕中显示的数据时。

使用本地数据网关的数据调用流

如果画布应用连接到本地数据源(例如 SQL Server),您需要有另一个层,称为本地数据网关。 在访问本地数据源时,必须使用此网关。 它负责将 OData 协议请求转换为 SQL 数据操作语言 (DML) 语句。

下图显示了本地数据网关的放置位置和方式以处理数据请求。

本地数据网关的数据调用流。

如果应用在本地使用数据源,数据网关的位置和规范还会影响数据调用的性能。

使用 Microsoft Dataverse 的数据调用流

使用 Microsoft Dataverse 作为数据源时,数据请求将直接进入环境实例—不经过 Azure API 管理。 因此,与其余数据源相比,数据调用的性能更快。 创建新的画布应用时,应用默认连接到 Microsoft Dataverse。

使用 Microsoft Dataverse 的数据调用流。

了解数据调用经过方式这一高级概念后,您可以详细地检查应用的性能。 总之,性能开销可能发生在任何一个层—来自客户端、APIM(API 管理)、连接器、本地数据网关或后端数据源。

测量性能

Power Apps 监视工具

虽然您可以使用浏览器的开发人员工具来查看性能,但 Power Apps 将监视工具中的调用集进行子集化以仅显示属于 Power Apps 的调用。

Power Apps 监视工具可以帮助您跟踪实际发送到数据源的内容以及发送请求和来自服务器的响应的时间戳。

您可以在本文中了解有关监视工具的详细信息:使用监视器调试画布应用

监视工具。

度量客户端的内存压力

若要以图形方式查看内存消耗情况,您可以使用浏览器的开发人员工具来分析内存。 它有助于您可视化堆大小、文档、节点和侦听器。 使用浏览器分析应用的性能,如 Microsoft Edge (Chromium) 开发人员工具概述中所述。 查看超出 JS 堆的内存阈值的情形。 详细信息:修复内存问题

内存使用情况图。

后续步骤

较小数据有效负载

另请参见

Power Apps 的故障排除问题

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。