优化布局的建议

适用于此 Power Platform Well-Architected Performance Efficiency 清单建议:

PE:06 使用高性能逻辑,并确保它将责任卸载到平台。 仅将逻辑用于预期目的,并且仅在必要时使用。

本指南介绍有关优化代码和基础结构性能的建议。 若要优化代码和基础结构,应仅将组件用于其核心目的,并且仅在需要时使用。 当您过度使用代码和基础结构时,会造成不必要的资源消耗、瓶颈和缓慢的响应。 为了弥补这些低效率,您必须添加更多资源来完成相同的任务。

定义

术语 定义
并发 同时执行多个任务或进程,但不一定完全同时执行。
并行 同时执行多个任务或流程时。

关键设计策略

优化逻辑和基础设施需要微调逻辑和支持基础设施,以提高性能效率。 它需要能够快速执行任务且不会浪费资源的高性能逻辑。 它需要一个精心设计的基础设施,该基础设施经过简化,以避免不必要的复杂性。 工作负载应使用平台的固有功能。 这种方法有助于确保逻辑和基础结构主要用于其核心目的,并且仅在需要时使用。

优化逻辑性能

若要优化逻辑性能,请修改代码以减少资源使用量、最小化运行时间并增强性能。 您可以修改逻辑以提高应用或流的效率和速度。 不要用蛮力掩盖性能问题。 蛮力是指增加计算资源以补偿代码性能,如增加额外容量而不是寻址源。 您需要通过优化来解决性能问题。 当您优化逻辑性能时,它有助于最大限度地利用系统资源、缩短响应时间、减少延迟并增强用户体验。

监控逻辑

逻辑仪表化是指在运行期间添加自定义事件日志以收集数据和监控逻辑性能的做法。 逻辑仪表化允许开发人员收集有关执行时间等关键指标的信息。 通过逻辑工具,开发人员可以深入了解逻辑热点路径,识别性能瓶颈,并优化逻辑以提高性能效率。

理想情况下,您应该在软件开发生命周期的早期执行逻辑分析。 越早发现逻辑问题,修复成本就越低。 您希望尽可能多地自动执行此逻辑分析。 使用动态和静态代码分析工具来减少手动工作量。 例如,流检查器可以突出显示预期性能不高的逻辑,如没有指定过滤条件的查询。 但是,请记住,此测试仍然是对生产的模拟。 生产环境提供了对逻辑优化的最清晰理解。

权衡:逻辑监控工具可能会增加成本。

识别热路径

通过检测逻辑,您可以测量不同逻辑路径的资源消耗。 这些测量值可帮助您识别热路径。 热路径对性能和资源使用率有显著影响。 它们是程序中需要高性能和低延迟的关键或经常执行的部分。

若要识别代码热路径,请考虑以下步骤:

  • 分析运行时数据:收集运行时数据并进行分析,以确定逻辑中消耗时间最多的区域。 查找经常执行或需要很长时间才能完成的模式或逻辑部分。

  • 测量性能:使用剖析工具或性能测试框架来测量不同逻辑路径的执行时间和资源消耗。 此过程有助于确定瓶颈和需要改进的领域。 例如,您可以使用 Power Apps 中的监控器,更好地了解应用程序的事件和公式是如何工作的,从而提高性能。

  • 考虑业务逻辑和用户效果:根据不同逻辑路径与应用程序功能或关键业务操作的相关性,评估其重要性。 确定哪些逻辑路径对于向用户提供价值或满足性能要求至关重要。

优化逻辑

优化逻辑是指优化逻辑的结构和设计,以使用更少的资源执行任务。 改进的逻辑减少了不必要的操作。 它以更少的资源消耗创造了更快的执行速度。 应删除逻辑路径中可能影响性能的任何不必要操作。 优先优化热路径,以获得最大的性能效率提升。

若要优化逻辑,请考虑以下策略:

  • 删除不必要的函数调用:检查您的逻辑,找出任何对所需功能而言并非必要且可能对性能产生负面影响的函数。 例如,如果函数调用执行代码中前面完成的验证,则可以删除不必要的验证函数调用。

  • 尽量减少日志操作:日志记录有助于调试和分析,但过多的日志记录可能会影响性能。 评估每个日志记录操作的必要性,并删除对性能分析不重要的任何不必要的日志记录调用。 一个好的做法是允许系统打开和关闭日志记录,以帮助调试,同时不导致生产性能问题。

  • 优化循环和条件:分析逻辑中的循环和条件,找出可以消除的不必要迭代或条件。 简化和优化这些结构可以提高代码的性能。 最大限度地减少循环中的函数调用,并消除冗余计算。 请考虑将计算移出循环。

  • 减少不必要的数据处理:检查逻辑中是否存在不必要的数据处理操作,如多余的计算或转换。 消除这些不必要的操作,以提高逻辑的效率。 例如,使用 Dataverse 计算列、滚动字段Power Fx 列,而不是在代码中计算值并通过保存操作将其存储。

  • 优化数据结构。 要有效地存储和检索数据,请选择适当的数据结构,并且仅选择所需的数据列。 为特定问题选择最佳数据结构。 合适的数据结构可提高应用程序性能。

  • 尽量减少网络请求:如果您的逻辑涉及网络请求(例如使用连接器操作),请尽量减少请求次数并优化其使用。 尽可能批处理请求,避免不必要的往返以提高性能。

  • 减少数据结构大小:查看数据要求,删除不必要的字段或属性。 通过选择合适的数据类型和高效打包数据来优化内存使用。

  • 异步完成工作:评估逻辑中的工作是否可以异步而非同步完成。 例如,考虑实施一个 Power Automate 流来异步处理工作,而不是执行内联操作。

  • 在自定义之前进行配置。 如果可以,请使用标准应用程序组件。 插件和 JavaScript 等自定义项可能会影响性能。

  • 尽量减少控件。 在窗体中仅显示所需的字段 - 过多的字段会使用户界面混乱并影响性能。 尽量减少命令栏、画布应用或自定义页面中的控件数量。 避免嵌套库或向库添加过多组件。

  • 优化数据查询。 仅在应用或流中加载所需的数据。 使用服务器端视图预筛选数据,以缩小与查询相关的数据范围。

查看针对您正在使用的 Power Platform 产品的性能建议。 根据这些建议评估您的逻辑,以确定需要改进的领域。

权衡:优化逻辑和热点路径需要专业知识。 识别逻辑效率低下是主观的,可能需要高技能的人员,您可能需要从其他任务中抽调他们。

使用并发性和并行性

使用并发性和并行性涉及同时或以重叠方式执行多个任务或进程,以有效利用计算资源。 这些技术可增加工作负荷可以处理的总体吞吐量和任务数。 当您并发或并行运行任务时,它可以减少应用程序的运行时间并增加响应时间。

并发性和并行性有效地在计算资源之间分配工作负载。 增加并发性或并行性时,请考虑对其他系统的影响,因为可能会超出其限制。 例如,Power Automate 流中的并发循环每次处理每个项目时,可能会超过循环逻辑中使用的连接器的请求限制。

使用并行性。 并行性是指系统在多个计算资源上同时触发多个任务或进程的能力。 并行性将工作负荷划分为并行运行的较小任务。 并行运行逻辑时,性能会提高,因为工作负载分布在多个分支中。

使用并发。 并发性是系统运行多个任务或进程的能力。 并发使工作负载的不同部分能够独立取得进展,从而提高整体性能。

  • 并发执行:并发执行允许相同的逻辑同时运行。 将并发执行限制为一个可能会产生序列化逻辑的效果,从而导致一次处理一个项目。 控制工作负荷项的并发执行量有助于管理处理过程中的资源使用情况。 例如,Power Automate 流循环可配置为使用并发控制属性并行处理多个操作。

    备注

    在启用并发之前,请记住,这意味着将同时执行多个操作 - 如果您将数据写入为循环的一部分,请确保数据的目标可以处理并发请求。

  • 队列:队列是位于工作负载的请求组件(生产者)和处理组件(消费者)之间的存储缓冲区。 单个队列可以有多个使用者。 随着任务的增加,您应该扩展使用者以满足需求。 生产者将任务放入队列中。 队列将存储任务,直到使用者具有容量为止。 队列通常是将工作移交给需求高峰期处理服务的最佳方式。 更多信息,请参阅基于队列的负载均衡模式存储队列和服务总线队列

优化后台作业

许多应用程序需要独立于用户界面运行的后台任务。 应用程序可以启动作业并继续处理来自用户的交互式请求。 后台作业的示例包括批处理作业、处理器密集型任务和长时间运行的进程(如工作流)。 后台任务不应阻止应用程序,也不应因系统负载下操作延迟而导致不一致。 有关优化后台任务的更多信息,请参阅开发后台任务的建议

Power Platform 便利化

插装代码:在构建画布应用程序时,应使用高性能模式来提高应用程序的效率,同时避免使用反模式。 如需了解更多信息,请参阅创建性能 Power Apps 概述。 使用 Power Apps 中的监控器诊断开发过程中的性能问题并排除故障。

测量参与度和成果:在构建代理时,跟踪对话参与度结果对于衡量代理性能指标和发现需要改进的地方至关重要。

优化代码逻辑:利用解决方案检查器功能,您可以根据一组最佳实践规则对解决方案执行丰富的静态分析检查,并快速识别有问题的模式。 利用流检查器,您可以深入了解流实施的哪些方面存在性能风险?

使用并发性和并行性:Power Automate 云端流程支持循环和触发器中的并发性。 请注意,并发、循环和除错限制适用并基于您的性能配置文件。 Power Apps 使用并发函数支持并发。

优化 Dataverse 性能:Microsoft Dataverse 提供一个可扩展的框架,允许开发人员构建高度定制和量身定制的体验。 在定制、扩展或集成 Dataverse 时,请注意既定指南和最佳实践。 请参阅使用 Microsoft Dataverse 时的最佳实践和指南

性能效率清单

请参考整套建议。