Compartir a través de


Recomendaciones para optimizar la lógica

Se aplica a esta recomendación de la lista de verificación de eficiencia de rendimiento bien diseñada: Power Platform

Educación Física:06 Utilice una lógica eficiente y asegúrese de que descargue responsabilidades en la plataforma. Utilice la lógica sólo para el propósito previsto y sólo cuando sea necesario.

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

Definiciones

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

Estrategias clave de diseño

Optimizar 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 tareas rápidamente y no desperdicie recursos. Requiere una infraestructura bien diseñada y optimizada para evitar una complejidad innecesaria. Una carga de trabajo debe utilizar las capacidades inherentes de la plataforma. Este enfoque ayuda a garantizar que tanto la lógica como la infraestructura se utilicen principalmente para sus propósitos principales y solo cuando sea necesario.

Optimizar el rendimiento lógico

Para optimizar el rendimiento lógico, 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 flujo. No enmascare los problemas de rendimiento con fuerza bruta. La fuerza bruta significa agregar recursos computacionales para compensar el rendimiento del código, como agregar capacidad adicional en lugar de abordar la fuente. Necesita 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 respuesta, reduce la latencia y mejora la experiencia del usuario.

Instrumenta tu lógica

La lógica de instrumentación se refiere a la práctica de agregar registros de eventos personalizados para recopilar datos y monitorear 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 la lógica, identificar cuellos de botella en el rendimiento y optimizar la lógica para lograr una mayor eficiencia del rendimiento.

Lo ideal es realizar un análisis lógico al principio del ciclo de vida del desarrollo de software. Cuanto antes se detecte un problema lógico, 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, Flow Checker puede resaltar la lógica que no se espera que tenga buen rendimiento, como una consulta que no especifica criterios de filtro. Sin embargo, tenga en cuenta que esta prueba sigue siendo una simulación de producción. La producción proporciona la comprensión más clara de la optimización lógica.

Compensación: Es probable que las herramientas de monitoreo lógico aumenten los costos.

Identificar rutas activas

Al instrumentar su lógica, puede medir el consumo de recursos para diferentes rutas lógicas. Estas mediciones le ayudarán a identificar rutas activas. Las rutas activas tienen un efecto significativo en el rendimiento y el uso de recursos. Son secciones críticas o que se ejecutan con frecuencia de un programa y que requieren alto rendimiento y baja latencia.

Para identificar rutas activas de código, considere estos pasos:

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

  • Medir el rendimiento: utilice herramientas de creació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 usar Monitor en Power Apps para comprender mejor cómo funcionan los eventos y las fórmulas de tu aplicación para poder mejorar el rendimiento.

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

Optimizar la lógica

Optimizar 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 menor consumo de recursos. Debe eliminar cualquier operación innecesaria dentro de la ruta lógica que pueda afectar el rendimiento. Priorice la optimización de las rutas activas para ver las mayores ganancias en eficiencia del rendimiento.

Para optimizar la lógica, considere las siguientes estrategias:

  • Eliminar llamadas de funciones innecesarias :Revise su lógica e identifique cualquier función que no sea esencial para la funcionalidad deseada y que pueda afectar negativamente el rendimiento. Por ejemplo, si una llamada de función realiza una validación completada anteriormente en el código, puede eliminar la llamada de 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 el registro excesivo puede afectar el rendimiento. Evalúe la necesidad de cada operación de registro y elimine cualquier llamada de registro innecesaria que no sea crítica para el análisis del rendimiento. Una buena práctica es permitir que su sistema active y desactive el registro, para ayudar en la depuración sin causar problemas de rendimiento de producción.

  • Optimizar bucles y condicionales :Analice bucles y condicionales en su lógica e identifique cualquier iteración o condición innecesaria que pueda eliminarse. Simplificar y optimizar estas estructuras puede mejorar el rendimiento de su código. Minimice las llamadas a funciones dentro de los bucles y elimine los cálculos redundantes. Considere mover los cálculos fuera del bucle.

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

  • Optimizar estructuras de datos. Para almacenar y recuperar datos de manera eficiente, Seleccionar utiliza estructuras de datos apropiadas 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, usar una acción de conector), minimice la cantidad 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.

  • Reducir el tamaño de la estructura de datos: revise los requisitos de los datos y elimine cualquier campo o propiedad innecesarios. Optimice el uso de la memoria seleccionando tipos de datos apropiados y empaquetando los datos de manera eficiente.

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

  • Configure antes de personalizar. Utilice componentes de aplicación estándar si puede. Las personalizaciones como complementos y JavaScript pueden afectar el rendimiento.

  • Minimizar los controles. Muestra sólo los campos que necesitas en los formularios: demasiados campos pueden saturar la interfaz de usuario y afectar el rendimiento. Minimiza la cantidad 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 las consultas de datos. Cargue únicamente los datos que necesita en una aplicación o flujo. Utilice vistas del lado del servidor para filtrar previamente los datos y limitar así los datos relevantes para su consulta.

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

Compensación: Optimizar la lógica y las rutas activas requiere experiencia. La identificación de ineficiencias lógicas es subjetiva y puede requerir personas altamente capacitadas, a quienes posiblemente deba recurrir de otras tareas.

Utilice concurrencia y paralelismo

El uso de concurrencia y paralelismo implica ejecutar múltiples tareas o procesos simultáneamente o de manera superpuesta para hacer un uso eficiente de los recursos informáticos. Estas técnicas aumentan el rendimiento general y la cantidad de tareas que una carga de trabajo puede procesar. Cuando ejecuta tareas simultáneamente o en paralelo, puede reducir el tiempo de ejecución de la aplicación y aumentar los tiempos de respuesta.

La concurrencia y el paralelismo distribuyen eficazmente la carga de trabajo entre los recursos informáticos. Al aumentar la concurrencia o el paralelismo, considere el impacto en otros sistemas, ya que podría exceder sus límites. Por ejemplo, un bucle simultáneo en un flujo 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. Power Automate

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

Utilice concurrencia. La concurrencia es la capacidad de un sistema para ejecutar múltiples tareas o procesos. La concurrencia permite que diferentes partes de una carga de trabajo progresen de forma independiente, lo que puede mejorar el rendimiento general.

  • Ejecución concurrente: la ejecución concurrente permite que la misma lógica se ejecute simultáneamente. 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 se pueden configurar para procesar múltiples acciones en paralelo utilizando la propiedad Control concurrente. Power Automate

    Nota

    Antes de habilitar la simultaneidad, tenga en cuenta que esto significa que se realizarán múltiples acciones al mismo tiempo: si está escribiendo datos como parte del bucle, asegúrese de que el destino de los datos pueda manejar 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, debes escalar los consumidores para satisfacer la demanda. El productor coloca tareas en una cola. La cola almacena las tareas hasta que un consumidor tenga capacidad. Una cola es a menudo la mejor manera de transferir trabajo a un servicio de procesamiento que experimenta picos de demanda. Para obtener más información, consulte Patrón de nivelación de carga basado en colas y Colas de almacenamiento y colas de Service Bus.

Optimizar 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 solicitudes interactivas de los usuarios. Los ejemplos de trabajos en segundo plano incluyen trabajos por lotes, tareas que consumen mucho procesador y procesos de larga ejecución, como flujos de trabajo. Las tareas en segundo plano no deberían bloquear la aplicación ni causar inconsistencias debido a un funcionamiento retrasado cuando el sistema está bajo carga. Para obtener más información sobre cómo optimizar los trabajos en segundo plano, consulte Recomendaciones para el desarrollo de trabajos en segundo plano.

Facilitación de Power Platform

Código de instrumentación :Al crear aplicaciones de lienzo, se deben utilizar patrones de alto rendimiento para mejorar la eficiencia de la aplicación, mientras que se deben evitar los antipatrones. Para obtener más información, consulte Descripción general de la creación de alto rendimiento Power Apps. Usar Monitor en Power Apps para diagnosticar y solucionar problemas de rendimiento durante el desarrollo.

Medir el compromiso y los resultados :Al construir copilotos, seguimiento participación en la conversación y resultados es esencial para medir las métricas de desempeño del copiloto y descubrir áreas de mejora.

Optimización de la lógica del código: con la función de verificador de soluciones , puede realizar una comprobación de análisis estático exhaustiva de sus soluciones comparándolas con un conjunto de reglas de mejores prácticas e identificar rápidamente patrones problemáticos. Con Flow Checker, puede obtener información sobre qué áreas de la implementación de su flujo representan un riesgo de rendimiento.

Uso de concurrencia y paralelismo:Los flujos en la nube admiten concurrencia en bucles y activadores. Power Automate Tenga en cuenta que se aplican límites de simultaneidad, bucles y desagrupamiento y se basan en su perfil de rendimiento. Power Apps Admite concurrencia mediante la función Concurrente .

Optimización del rendimiento: proporciona un marco extensible que permite a los desarrolladores crear experiencias altamente personalizadas y adaptadas. Dataverse Microsoft Dataverse 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.