Optimieren der AEM-Site-Leistung

In diesem Artikel wird beschrieben, wie Sie die Leistung Ihrer Site verbessern können. Wir haben die verschiedenen Aspekte der Anwendungen und Architekturen von Adobe Experience Manager (AEM) hervorgehoben, die zu den meisten Leistungsproblemen geführt haben. Durch die Implementierung der hier aufgeführten Optimierungen können Sie diese häufigen Probleme vermeiden.

Beschreibung description

Umgebung

Adobe Experience Manager

Problem/Symptome

Wie kann ich die AEM-Site-Performance optimieren?

Auflösung resolution

Site-Performance

  1. vollbringen Regelmäßige Wartung.
  2. Fehlertoleranz bei Back-End-Service-Aufrufen - siehe Dieser Artikel für Details.
  3. Seien Sie vorsichtig bei der Verwendung von UI-Frameworks von Drittanbietern - Wir haben gesehen, dass verschiedene Kunden Bibliotheken verwenden oder erstellen, die eine ganze Ebene auf dem AEM/Sling-Web-Framework aufbauen. Wir beziehen uns nicht auf Dienstprogramme, die auf bestimmte Funktionen in der Benutzeroberfläche abzielen (z. B. ACS Commons), sondern auf Frameworks, die die Implementierung Ihrer Anwendung auf AEM grundlegend ändern. Während diese Frameworks die Entwicklungszeit etwas verkürzen können, haben wir oft gesehen, dass sie negative Auswirkungen auf die Leistung haben können.
    Frameworks von Drittanbietern werden von Adobe nicht unterstützt oder getestet. Wenn Sie solche Frameworks verwenden oder implementieren, sollten Sie sicherstellen, dass Sie Ihre Anwendung gründlich laden und mit realistischem Traffic testen.

Client-seitige Leistung

  • Verwenden und Optimieren von AEM-Client-Bibliotheken - Client-Bibliotheken sind eine einfache Möglichkeit, die Verwaltung und Optimierung von CSS- und JavaScript-Code auf Ihrer Site zu zentralisieren.

    • Einbetten Client-Bibliotheken zur Konsolidierung in weniger Dateien.
    • Minify Die Bibliotheken.
  • Einfügen von CSS-Einschlüssen in HTML-Head-Tag - Dadurch wird das Flackern und Neuzeichnen der Seite nach dem Laden vermieden.

  • Fügen Sie JavaScript-Includes am Ende des body-Tags ein oder fügen Sie die asynchrones Skript-Attribut - Dadurch kann der Browser JavaScript-Dateien parallel laden, während die Seite gerendert wird.

  • Domain-Freigabe implementieren - Standardmäßig beschränken Webbrowser die maximale Anzahl paralleler Anfragen pro Domain beim Laden der Seite. Dies kann zu Verzögerungen beim Laden der Seite führen, wenn Sie über viele Ressourcen wie CSS, JavaScript usw. verfügen. die geladen werden muss, bevor die Seite gerendert wird. Die Domain-Freigabe ist eine Lösung, mit der dieses Problem umgangen werden kann. Bei der Domain-Freigabe binden Sie Dateien wie CSS und JavaScript über mehrere Subdomains in Ihre Site ein.

    • Beispiel:

      code language-none
      script src="//includes1.yoursite.com/etc/clientlibs/test.js"/script
      script src="//includes2.yoursite.com/etc/clientlibs/test2.js"/script
      
    • Verwenden von ACS Commons - Statischer Referenz-Rewriter , um die Domain-Freigabe zu implementieren.

  • JavaScript und CSS für lange Zeiträume zwischenspeichern : Verwenden Sie zum Zwischenspeichern von JavaScript und CSS für lange Zeiträume Folgendes ACS Commons - versionierte Clientlibs.

  • Siehe Dokumentation zu Google PageSpeed-Regeln für weitere Hinweise zur Optimierung Ihrer Site.

  • Hier sehen AEM Gems-Sitzung Für weitere Informationen zur Optimierung vor Ort.

Bearbeitungsleistung der Autoreninstanz

  1. vollbringen Regelmäßige Wartung.
  2. Reduzieren der Seitenkomponenten insgesamt - Wenn auf einer AEM-Seite in einer Autoreninstanz Hunderte einzelner bearbeitbarer Komponenten geladen sind, wirkt sich dies stark auf die Leistung der Editor-Benutzeroberfläche aus. Bevorzugen Sie beim Entwerfen Ihrer Anwendung Komponenten, die spezifischer für die Site sind und für Editoren einfach zu verwenden sind, gegenüber generischen Komponenten, die viele Unterkomponenten aufweisen.
  3. Verschachtelung vieler Ebenen von Container-Komponenten (Absatzsystem, responsives Raster, Experience Fragments) vermeiden - Verschachtelung vieler Ebenen von Container-Komponenten vermeiden. Durch Verschachteln von Absatzsystemen oder responsiven Rastern wird die Seite /editor.html langsamer geladen. Dies ist insbesondere der Fall, wenn das Absatzsystem oder das responsive Raster eine lange Liste von Inhalten enthält. Entwerfen Sie die Anwendung so, dass sie auf Inhalte von anderen Seiten verweist, anstatt Absatzsysteme zu verschachteln. Wenn Sie sich für die Verwendung von Experience Fragments entscheiden, vermeiden Sie deren Verschachtelung oder verwenden Sie Bausteine. Verschachtelte Experience Fragments sind von denselben Leistungsbeschränkungen betroffen.

Cache-Optimierung

In einer gemeinsamen AEM-Site-Architektur durchläuft die HTTP-Anfrage mehrere Caches, bevor sie schließlich die AEM-Veröffentlichungsinstanzen erreicht. Eine der einfachsten Möglichkeiten, die Site-Leistung zu verbessern, besteht darin, die Zwischenspeicherbarkeit Ihrer Site zu optimieren.

Siehe Dieser Artikel für detaillierte Anweisungen zur Optimierung des Caching in Ihrer Site.

Optimieren von Indizes für benutzerdefinierte JCR-Abfragen

Eine weitere Optimierung, die durchgeführt werden kann, um die Leistung zu verbessern, besteht darin, Oak-Indizes für Ihre benutzerdefinierten JCR-Abfragen zu konfigurieren und zu optimieren. Wenn Sie JCR-Abfragen innerhalb Ihrer Anwendung verwenden, ist dies im Allgemeinen eine obligatorische Aufgabe.

In der offiziellen Dokumentation (1 und 2) finden Sie Informationen zur Implementierung von Oak-Indizes für Ihre benutzerdefinierten Programmabfragen.:

QueryBuilder guessTotal

Wenn Sie den AEM QueryBuilder verwenden und erwarten, dass die Abfrage viele Ergebnisse zurückgibt, stellen Sie immer sicher, dass Sie die guessTotal-Eigenschaft für die Stamm-PredicateGroup festlegen, da sie die Speichernutzung reduziert. Einzelheiten finden Sie in der offiziellen Dokumentation zu diesem Thema: Query Builder-API

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f