Auf dem Raspberry mit PHP 7 bekomme ich beim Anklicken von Einstellungen folgende Fehlermeldung
Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/adm_program/system/classes/Language.php on line 441
Dies habe ich auf dem Webserver (PHP 5.6) nicht. Der Raspberry 1 ist jedoch auch nicht so leistungsfähig, sollte ja aber für die Seite dennoch reichen.
Wenn man die Seite mit F5 aktualisiert, erscheint diese ohne Fehler.
Ich vermute, dass es durch die vielen Übersetzungsstrings ist, welche einmalig eingelesen werden. Danach sind sie im Cache und der 2. Aufruf ist schnell. Das Phänomen habe ich auch bei mir Lokal beobachtet, wenn auch zum Glück mit schnelleren Laufzeiten.
Im Anhang das Debug-Logfile. Der erste Request ist wieder mit dem oben genannten Fehler abgebrochen, danach habe ich noch ein F5 ausgeführt und die Seite wurde korrekt geladen.
Bitte die aktuelle Version holen und nochmal das Log schicken. Hab jetzt paar logging infos für die execution time hinzugefügt.
Man sieht an den Logs das er beim ersten mal 30sec läuft und dann abbricht. Aber ich kann noch nicht rauslesen wo es genau scheitert
Also er braucht alleine nur für die Translation strings zum nachschauen 249x länger als 0,1sec (=24,9sec). Dann kommt noch bissl anderes Zeugs zusammen und dadurch werden die 30sec überschritten. Mal schauen wie man das optimieren kann.
Beim 2 aufruf dauert es durch den cache meist nur ~0,00005sec pro String
Für Datenbank queries braucht er 1x 0,3sec (UPDATE) und sonst weniger als 0,02sec
Im Anhang findest du das Logfile. Habe die gleichen Aktionen durchgeführt. Es hat zwar einige Sekunden gedauert, jedoch nicht so lange, dass es in den Timeout gelaufen ist.
Ok das caching funktioniert jetzt.
Der erste request dauert bei dir ~11sec. Wenn ich das richtig sehe bremst hier die suche im xml file (eigentlich SimpleXMLElement). Hier dauert beim ersten suchen pro translation id etwa 26ms. Wenn es dann mal gecached ist dauert der zugriff nur mehr 0,035ms. Also fast das 1000 fache schneller.
Der Raspberry 1 ist ja jetzt auch so ziemlich das langsamste das verwendet wird für Admidio. Also wenns mit dem läuft sollte es keine Probleme geben