Optimizar AEM rendimiento del sitio

Descripción

Entorno
Adobe Experience Manager

Problema/Síntomas
Este artículo se centra en las formas de mejorar el rendimiento del sitio. Destacamos los diversos aspectos de las aplicaciones y arquitecturas de Adobe Experience Manager (AEM) que han causado la mayor cantidad de problemas de rendimiento. Al implementar las optimizaciones enumeradas aquí, puede evitar estos problemas comunes.

Resolución

Rendimiento del sitio

  1. Realizar mantenimiento regular.
  2. Hacer que las llamadas de servicio back-end toleren errores: consulte este artículo para obtener más información.
  3. Tenga cuidado al usar marcos de interfaz de usuario de terceros : hemos visto a varios clientes usar o crear bibliotecas que crean una capa entera sobre el marco web de AEM/Sling. Tenga en cuenta que no nos referimos a utilidades que se dirigen a funcionalidades específicas en la interfaz de usuario (por ejemplo, ACS Commons) sino a marcos que cambian fundamentalmente la forma en que implementa la aplicación en AEM. Aunque estos marcos pueden reducir ligeramente el tiempo de desarrollo, muchas veces hemos visto que pueden tener un impacto negativo en el rendimiento.
    El Adobe no admite ni prueba los marcos de terceros. Al utilizar o implementar estos marcos, asegúrese de cargar y probar la aplicación con tráfico realista.

Rendimiento del lado del cliente

  • Utilice y optimice AEM bibliotecas de cliente: las bibliotecas de cliente son una forma sencilla de centralizar la administración y la optimización del código CSS y JavaScript de su sitio.

    • Incrustar bibliotecas de cliente para consolidarlas en menos archivos.
    • Minificar las bibliotecas.
  • Coloque las funciones CSS incluidas en la etiqueta Head del HTML : esto ayuda a evitar parpadeos y volver a pintar en la página después de la carga.

  • Coloque el script de JavaScript incluido al final de la etiqueta de cuerpo o agregue la variable atributo de script async : esto permite al explorador cargar archivos JavaScript en paralelo mientras se representa la página.

  • Implementación del uso compartido de dominios : de forma predeterminada, los exploradores web limitan el número máximo de solicitudes paralelas por dominio durante la carga de la página. Esto puede causar retrasos en la carga de la página si tiene muchos recursos como CSS, JavaScript, etc. que deben cargarse antes de que se represente la página. El uso compartido de dominios es una solución que ayuda a solucionar este problema. El uso compartido de dominios es donde se incluyen archivos como CSS y JavaScript en el sitio a través de varios subdominios.

    • Por ejemplo:

      script src="//includes1.yoursite.com/etc/clientlibs/test.js"/script
      
      script src="//includes2.yoursite.com/etc/clientlibs/test2.js"/script
      
    • Uso ACS Commons - Redactor de referencias estáticas para implementar el uso compartido de dominios.

  • Almacene en caché JavaScript y CSS durante largos períodos de tiempo : para permitir el almacenamiento en caché de javascript y css durante largos períodos de tiempo, aproveche ACS Commons - Clientlibs con versión.

  • Consulte la Documentación de reglas de Google PageSpeed para obtener más información sobre cómo optimizar el sitio.

  • Consulte esta AEM sesión de Gems para obtener más información sobre las optimizaciones del sitio.

Rendimiento de edición de instancias de autor

  1. Realizar mantenimiento regular.
  2. Reducir el total de componentes de la página : cuando hay cientos de componentes editables individuales cargados en una página AEM en una instancia de autor, esto afecta en gran medida al rendimiento de la interfaz de usuario del editor. Al diseñar la aplicación, favorezca los componentes más específicos del sitio y fáciles de usar para los editores en comparación con los componentes genéricos que tienen muchos subcomponentes.
  3. Evitar anidar muchos niveles de componentes de contenedor (sistema de párrafos, cuadrícula adaptable, fragmentos de experiencia): Evite anidar muchos niveles de componentes de contenedor. Al anidar sistemas de párrafos o cuadrículas adaptables, la página /editor.html se carga más lentamente. Este es el caso especialmente cuando el sistema de párrafos o la cuadrícula adaptable incluye una larga lista de contenido. En lugar de anidar sistemas de párrafos, diseñe la aplicación para hacer referencia al contenido de otras páginas. Si opta por utilizar fragmentos de experiencia, evite anidarlos también o aproveche componentes. Los fragmentos de experiencia anidados se ven afectados por las mismas limitaciones de rendimiento.

Optimización de la caché

En una arquitectura de sitio de AEM común, la solicitud HTTP pasa a través de varias cachés antes de que finalmente llegue a las instancias de publicación de AEM. Una de las formas más sencillas de mejorar el rendimiento del sitio es optimizar su accesibilidad.

Consulte este artículo para ver los pasos detallados sobre cómo optimizar el almacenamiento en caché en el sitio.

Optimizar índices para consultas JCR personalizadas

Otra optimización que se puede realizar para mejorar el rendimiento es configurar y optimizar los índices Oak para sus consultas JCR personalizadas. Si está utilizando consultas JCR dentro de su aplicación, generalmente se trata de una tarea obligatoria.

Consulte la documentación oficial (1 y 2) para saber cómo implementar índices Oak para las consultas de aplicaciones personalizadas.:

  1. Prácticas recomendadas para consultas e indexación
  2. Solución de problemas de consultas lentas

QueryBuilder adivinenTotal

Si está utilizando el QueryBuilder AEM y espera que la consulta devuelva muchos resultados, asegúrese siempre de establecer la propiedad adivinenTotal en el PredicateGroup raíz, ya que reducirá el uso de memoria. Consulte la documentación oficial al respecto para obtener más información: API del generador de consultas

En esta página