Wenn du es ganz professionell machen möchtest, müsstest du z.B. via Xdebug-Profiler (
https://xdebug.org/docs/profiler) ein Cachegrind erstellen und dann prüfen, wo die einzelnen Lasten/Zeiten enorm hoch sind. Da setzt du dann mit deiner Analyse an, um die Abläufe zu optimieren.
Glück hast du wenn es nur an einem Modul liegt, ich gehe aber davon aus, das der Core insgesamt mitlerweile sehr träge geworden ist, weil ein enormer Overhead produziert und geladen wird.
Wenn du nur hier und da am Schräubchen drehen möchtest, ohne die Ursachen näher einzugrenzen, würde ich folgende Dinge empfehlen:
- prüfen, ob in der config (im Mandanten) $force = 0; gesetzt ist, damit des neu Erzeugen der Module nicht bei jedem reload erzwungen wird.
- HTML clean & smart halten (HTTP-Request minimieren, usw)
- prüfen, ob dein Cachverzeichnis von Contenido vorhanden ist und funktioniert (Backend ⇒ Administration ⇒ System ⇒ Systemintegrität)
- GZip-Komprimierung am Webserver aktivieren (mod_deflate)
- Expire-Header (mod_expires) setzen (via .htaccess) [bring nichts für den ersten Load, aber für anschließende]
- Cache-Header (mod_cache) setzen
- ggf. mal Apache & Mysql Konfig prüfen, ob die optimal sind
Einige solcher Tipps findest du auch hier:
https://samaxes.com/2011/05/improving-w ... -htaccess/
Davon abgesehen, ist Contenido 4.9 bekannter Maßen nicht so Performant wie 4.8. Leider wurde/wird bei der Entwicklung (und wird ... soweit ich weiß) kaum ein Gedanke an Performance/Profiling verschwendet. Somit wurde von 4.8 auf 4.9 zwar vieles im Sinne der objektorientierten Programmierung verbessert, aber halt die Performance bei der Umstrukturierung (scheinbar) sträflich vernachlässigt.
Zu deinem Posting aus der Errorlog... hier wurde der an die foreach-schleife übergebene Parameter nicht sauber getestet, bevor er weiter verarbeitet wurde. So etwas kostet unterm Strich natürlich auch performance, wird aber nicht die Hauptursache für deine langen Ladezeiten sein.