Compartir a través de


Recomendaciones para optimizar la lógica

Se aplica a esta recomendación de lista de comprobación de eficiencia del rendimiento de buena arquitectura de Power Platform:

PE:06 Utilice una lógica de alto rendimiento y asegúrese de que descarga las responsabilidades en la plataforma. Use la lógica solo para el propósito previsto y solo cuando sea necesario.

Esta guía describe las recomendaciones para optimizar el rendimiento del código y la infraestructura. Para optimizar el código y la infraestructura, debe usar los componentes solo para su propósito principal y solo cuando sea necesario. Cuando se hace un uso excesivo del código y la infraestructura, se crea un consumo innecesario de recursos, cuellos de botella y respuestas lentas. Para compensar esas ineficiencias, debe agregar más recursos para realizar las mismas tareas.

Definiciones

Término Definición
Simultaneidad Cuando se realizan varias tareas o procesos a la vez, pero no necesariamente al mismo tiempo.
Paralelismo Cuando se realizan varias tareas o procesos al mismo tiempo.

Estrategias clave de diseño

La optimización de la lógica y la infraestructura implica ajustar la lógica y la infraestructura de soporte para mejorar la eficiencia del rendimiento. Requiere una lógica de alto rendimiento que ejecute las tareas con rapidez y no desperdicie recursos. Requiere una infraestructura bien diseñada y optimizada para evitar complejidades innecesarias. Una carga de trabajo debe usar las capacidades inherentes de la plataforma. Este enfoque ayuda a garantizar que tanto la lógica como la infraestructura se utilicen principalmente para sus fines principales y solo cuando sea necesario.

Optimizar el rendimiento de la lógica

Para optimizar el rendimiento de la lógica, modifique el código para reducir el uso de recursos, minimizar el tiempo de ejecución y mejorar el rendimiento. Puede modificar la lógica para mejorar la eficiencia y la velocidad de una aplicación o un flujo. No enmascare los problemas de rendimiento con fuerza bruta. La fuerza bruta significa agregar recursos informáticos para compensar el rendimiento del código, como agregar capacidad adicional en lugar de abordar el origen. Debe solucionar los problemas de rendimiento con la optimización. Cuando optimiza el rendimiento de la lógica, ayuda a maximizar la utilización de los recursos del sistema, mejora el tiempo de respuesta, reduce la latencia y mejora la experiencia del usuario.

Instrumentar su lógica

Instrumentar la lógica es la práctica de agregar registros de eventos personalizados para recopilar datos y supervisar el rendimiento de la lógica durante el tiempo de ejecución. La instrumentación lógica permite a los desarrolladores recopilar información sobre métricas clave, como el tiempo de ejecución. Al instrumentar la lógica, los desarrolladores pueden obtener información sobre las rutas activas de lógica, identificar cuellos de botella en el rendimiento y optimizar la lógica para mejorar la eficiencia del rendimiento.

Lo ideal es realizar un análisis lógico al principio del ciclo de vida del desarrollo de software. Cuanto antes detecte un problema de lógica, más barato será solucionarlo. Desea automatizar la mayor parte posible de este análisis lógico. Utilice herramientas de análisis de código dinámico y estático para reducir el esfuerzo manual. Por ejemplo, el Comprobador de flujo puede resaltar la lógica que no se espera que sea eficaz, como una consulta que no especifica criterios de filtro. Sin embargo, tenga en cuenta que estas pruebas siguen siendo una simulación de producción. La producción proporciona la comprensión más clara de la optimización lógica.

Desventaja: es probable que las herramientas de monitoreo lógico aumenten los costos.

Identificar rutas activas

Al instrumentar la lógica, puede medir el consumo de recursos para diferentes secuencias de operaciones. Estas mediciones le ayudan a identificar las rutas frecuentes. Las rutas activas tienen un efecto significativo en el rendimiento y el uso de recursos. Son secciones críticas o de ejecución frecuente de un programa que requieren un alto rendimiento y baja latencia.

Para identificar las rutas activas de código, tenga en cuenta estos pasos:

  • Analizar datos de tiempo de ejecución: recopile datos de tiempo de ejecución y analícelos para identificar las áreas de la lógica que consumen la mayor parte del tiempo transcurrido. Busque patrones o secciones de lógica que se ejecuten con frecuencia o que tarden mucho tiempo en completarse.

  • Medir el rendimiento: utilice herramientas de generación de perfiles o marcos de pruebas de rendimiento para medir el tiempo de ejecución y el consumo de recursos de diferentes rutas lógicas. Este proceso ayuda a identificar cuellos de botella y áreas de mejora. Por ejemplo, puedes utilizar Monitor en Power Apps para comprender mejor cómo funcionan los eventos y las fórmulas de tu aplicación y así poder mejorar el rendimiento.

  • Tener en cuenta la lógica de negocios y el efecto en el usuario: evalúe la importancia de las diferentes rutas lógicas en función de su relevancia para la funcionalidad de la aplicación o las operaciones comerciales críticas. Determine qué rutas lógicas son cruciales para ofrecer valor a los usuarios o para cumplir con los requisitos de rendimiento.

Optimizar la lógica

La optimización de la lógica consiste en refinar la estructura y el diseño de la lógica para realizar tareas con menos recursos. La lógica mejorada reduce las operaciones innecesarias. Crea una ejecución más rápida con menos consumo de recursos. Debe quitar cualquier operación innecesaria dentro de la ruta lógica que pueda afectar al rendimiento. Priorice la optimización de las rutas activas para obtener las mayores ganancias de eficiencia en el rendimiento.

Para optimizar la lógica, tenga en cuenta las siguientes estrategias:

  • Eliminar las llamadas a funciones innecesarias: revise la lógica e identifique las funciones que no son esenciales para la funcionalidad deseada y que podrían afectar negativamente al rendimiento. Por ejemplo, si una llamada a una función realiza una validación completada anteriormente en el código, puede quitar la llamada a la función de validación innecesaria.

  • Minimizar las operaciones de registro: el registro puede ser útil para la depuración y el análisis, pero un registro excesivo puede afectar al rendimiento. Evalúe la necesidad de cada operación de registro y elimine las llamadas de registro innecesarias que no sean críticas para el análisis del rendimiento. Un procedimiento recomendado es permitir que el sistema active y desactive el registro para ayudar en la depuración sin causar problemas de rendimiento de producción.

  • Optimizar los bucles y los condicionales: analice los bucles y los condicionales en su lógica e identifique las iteraciones o condiciones innecesarias que se pueden eliminar. La simplificación y optimización de estas estructuras puede mejorar el rendimiento del código. Minimice las llamadas a funciones dentro de los bucles y elimine los cálculos redundantes. Considere la posibilidad de mover los cálculos fuera del bucle.

  • Reducir el procesamiento de datos innecesario: revise la lógica para detectar operaciones de procesamiento de datos innecesarias, como cálculos o transformaciones redundantes. Elimine estas operaciones innecesarias para mejorar la eficiencia de la lógica. Por ejemplo, use columnas calculadas de Dataverse, campos consolidados o columnas de Power Fx en lugar de calcular el valor en el código y almacenarlo con una operación de guardado.

  • Optimizar estructuras de datos. Para almacenar y recuperar datos de forma eficaz, seleccione las estructuras de datos adecuadas y solo las columnas de datos necesarias. Elija la mejor estructura de datos para un problema específico. Una estructura de datos adecuada mejora el rendimiento de la aplicación.

  • Minimizar las solicitudes de red: si su lógica implica realizar solicitudes de red (por ejemplo, mediante una acción de conector), minimice el número de solicitudes y optimice su uso. Realice solicitudes por lotes cuando sea posible y evite viajes de ida y vuelta innecesarios para mejorar el rendimiento.

  • Reduzca el tamaño de la estructura de datos: revise los requisitos de datos y elimine los campos o propiedades innecesarios. Optimice el uso de memoria seleccionando los tipos de datos adecuados y empaquetando los datos de forma eficaz.

  • Realizar el trabajo asincrónicamente: evalúe si el trabajo se podría realizar de forma asincrónica en lugar de sincrónica en su lógica. Por ejemplo, en lugar de realizar la operación en línea, considere la posibilidad de implementar un flujo de Power Automate para procesar el trabajo de forma asincrónica.

  • Configure antes de personalizar. Si puede, utilice componentes de aplicación estándar. Las personalizaciones, como los complementos y JavaScript, pueden afectar al rendimiento.

  • Minimizar controles. Muestre solo los campos que necesita en los formularios: demasiados campos pueden saturar la interfaz de usuario y afectar al rendimiento. Minimice el número de controles en la barra de comandos, la aplicación de lienzo o la página personalizada. Evite anidar galerías o agregar demasiados componentes a una galería.

  • Optimizar consultas de datos. Cargue solo los datos que necesita en una aplicación o flujo. Use vistas del lado del servidor para filtrar previamente los datos y limitar los datos relevantes para su consulta.

Revise las recomendaciones de rendimiento específicas para el producto de Power Platform con el que está trabajando. Evalúe su lógica con respecto a estas recomendaciones para identificar áreas de mejora.

Desventaja: optimizar la lógica y las rutas activas requiere experiencia. La identificación de las ineficiencias lógicas es subjetiva y puede requerir personas altamente cualificadas, a las que es posible que tenga que recurrir de otras tareas.

Usar simultaneidad y paralelismo

El uso de la simultaneidad y el paralelismo implica la ejecución de varias tareas o procesos, ya sea de forma simultánea o superpuesta, para hacer un uso eficiente de los recursos informáticos. Estas técnicas aumentan el rendimiento general y el número de tareas que una carga de trabajo puede procesar. Cuando se ejecutan tareas simultáneamente o en paralelo, se puede reducir el tiempo de ejecución de la aplicación y aumentar los tiempos de respuesta.

La simultaneidad y el paralelismo distribuyen eficazmente la carga de trabajo entre los recursos informáticos. Al aumentar la simultaneidad o el paralelismo, tenga en cuenta el impacto en otros sistemas, ya que podría superar sus límites. Por ejemplo, un bucle simultáneo en un flujo de Power Automate que procesa cada elemento a la vez podría superar los límites de solicitud de un conector utilizado en la lógica del bucle.

Utilice el paralelismo. El paralelismo es la capacidad de un sistema para desencadenar simultáneamente múltiples tareas o procesos en múltiples recursos informáticos. El paralelismo divide una carga de trabajo en tareas más pequeñas que se ejecutan en paralelo. Cuando se ejecuta la lógica en paralelo, el rendimiento mejora porque la carga de trabajo se distribuye entre varias ramas.

Utilizar la simultaneidad. La simultaneidad es la capacidad de un sistema para ejecutar varias tareas o procesos. La simultaneidad permite que diferentes partes de una carga de trabajo progresen de forma independiente, lo que puede mejorar el rendimiento general.

  • Ejecución simultánea: la ejecución simultánea permite que la misma lógica se ejecute a la vez. Limitar la ejecución simultánea a uno puede tener el efecto de serializar la lógica, lo que da como resultado el procesamiento de un elemento a la vez. Controlar la cantidad de ejecución simultánea de elementos de carga de trabajo puede ayudar a administrar el uso de recursos durante el procesamiento. Por ejemplo, los bucles de flujo de Power Automate se pueden configurar para procesar varias acciones en paralelo mediante la propiedad Control simultáneo.

    Nota

    Antes de habilitar la simultaneidad, tenga en cuenta que esto significa que se efectuarán varias acciones al mismo tiempo, si escribe datos como parte del bucle, asegúrese de que el destino de los datos pueda controlar solicitudes simultáneas.

  • Colas: una cola es un búfer de almacenamiento ubicado entre un componente solicitante (productor) y el componente de procesamiento (consumidor) de la carga de trabajo. Puede haber varios consumidores para una sola cola. A medida que aumentan las tareas, debe escalar a los consumidores para satisfacer la demanda. El productor coloca las tareas en una cola. La cola almacena las tareas hasta que un consumidor tiene capacidad. Una cola suele ser la mejor manera de transferir el trabajo a un servicio de procesamiento que experimenta picos de demanda. Para obtener más información, consulte el patrón de nivelación de carga basada en colas y Colas de almacenamiento y colas de Service Bus.

Optimizar los trabajos en segundo plano

Muchas aplicaciones requieren tareas en segundo plano que se ejecutan independientemente de la interfaz de usuario. La aplicación puede iniciar el trabajo y continuar procesando las solicitudes interactivas de los usuarios. Entre los ejemplos de trabajos en segundo plano se incluyen los trabajos por lotes, las tareas que hacen un uso intensivo del procesador y los procesos de larga duración, como los flujos de trabajo. Las tareas en segundo plano no deben bloquear la aplicación ni causar incoherencias debido a un funcionamiento más lento cuando el sistema está bajo carga. Para obtener más información sobre la optimización de trabajos en segundo plano, consulte Recomendaciones para desarrollar trabajos en segundo plano.

Facilitación de Power Platform

Código de instrumentación: al crear aplicaciones de lienzo, se deben usar patrones de rendimiento para mejorar la eficiencia de la aplicación, mientras que se deben evitar los antipatrones. Para obtener más información, consulte Información general sobre cómo crear Power Apps de alto rendimiento. Utilice Supervisar en Power Apps para diagnosticar y solucionar problemas de rendimiento durante el desarrollo.

Medir el compromiso y los resultados: al crear agentes, el seguimiento de la participación en la conversación y los resultados es esencial para medir las métricas de rendimiento del agente y detectar áreas de mejora.

Optimización de la lógica del código: con la característica del Comprobador de soluciones puede realizar una completa verificación de análisis estático de sus soluciones con un conjunto de reglas de prácticas recomendadas e identificar rápidamente estos patrones problemáticos. Con el Comprobador de flujo, puede obtener información sobre qué áreas de la implementación de su flujo representan un riesgo para el rendimiento.

Uso de simultaneidad y paralelismo: los flujos de nube de Power Automate admiten simultaneidad en bucles y desencadenadores. Tenga en cuenta que se aplican los límites de concurrencia, bucle y fragmentación y se basan en su perfil de rendimiento. Power Apps admite la simultaneidad mediante la función Concurrent.

Optimización del rendimiento de Dataverse: Microsoft Dataverse proporciona un marco de trabajo extensible con el que los desarrolladores podrán crear experiencias muy personalizadas y adaptadas. Cuando personaliza, extiende o integra con Dataverse, debe tener en cuenta los procedimientos recomendados y las instrucciones establecidas. Consulte Prácticas recomendadas e instrucciones al usar Microsoft Dataverse.

Lista de comprobación de eficiencia en el rendimiento

Consulte el conjunto completo de recomendaciones.