Geschwindigkeit 4.8.20 vs 4.9.12

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Geschwindigkeit 4.8.20 vs 4.9.12

Beitrag von rethus » Mi 13. Dez 2017, 11:25

Da ich gerade eh an einem Upgrade von 4.8.20 auf 4.9.12 sitze, und beide Pages auf dem gleichen Server laufen hab, hab ich mal eben ein Performance-Test gemacht.

Das Contenido 4.9. langsamer ist, als 4.8 ist allgemein bekannt und oft erwähnt. Dieser Thread soll einmal ein paar greifbare (visuelle) belege dafür liefern, und auch ein Gefühl dafür, wie groß die Differenz ist.

Testumfeld
Bei Besagter Seite wurden die Module 1 zu 1 aus der 4.8er genommen, und zu 4.9 migriert - ohne diese groß umzuprogrammieren. Es wurden also im Grunde nur veraltete Funktionsaufrufe gegen neue ersetzt.
Beide Seiten befinden sich auf dem gleichen Server, haben die gleiche PHP & DB-Version.

Ursachenforschung
Ursache ist sicherlich das aufgrund stärkerer Objektorientierung der Overhead zur Laufzeit erheblich zugenommen hat. Leider hat man hier bei dem Umbau des Cores die Performance außer acht gelassen - oder zumindest einem sehr geringen Stellenwert beigemessen.

Ergebnis
FirstByte von 0,54s auf 1,4s
StartRender von 0,8s auf 1,67s
Visually Complete von 1,2s auf 2,1s
Fully Loaded von 1,62s auf 2,5s
Auswahl_474.jpg
Speed-Comparsion 4.8_4.9 (klein)
Auswahl_474.jpg (22.48 KiB) 4290 mal betrachtet
Vergleichs-Dienst: https://www.dareboost.com
Dateianhänge
Auswahl_473.jpg
Speed-Comparsion 4.8_4.9 (groß)
(87.57 KiB) Noch nie heruntergeladen
Zuletzt geändert von rethus am Mo 18. Dez 2017, 11:36, insgesamt 1-mal geändert.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von Oldperl » Mi 13. Dez 2017, 11:37

Servus Samuel,

ein bekanntes Problem, welches im Frontend nur durch das Caching kaschiert wird. Zur Behebung müsste man den Core erneut Generalüberholen. Das ist, denke ich aber, aufgrund fehlender Man-Power und mit den Wenigen, die sich wirklich noch im Core auskennen, in absehbarer Zeit nicht realisierbar.
Trotzdem danke für die Visualisierung des Problems.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von Faar » Mi 13. Dez 2017, 12:13

Danke Rethus.

Ich frage mich, welchen Einfluss dabei einzelne Methodenaufrufe haben und vor allem der Server mit Corespeed und RAM?
Mir ist aufgefallen, dass die 4.9 seit 4.9.3 (da habe ich es erst eingesetzt) bis zur 4.9.12 erheblich schneller geworden ist und ich momentan nicht klagen kann. Es läuft.
Eventuell spielte da auch ein Upgrade von PHP 5.x auf PHP 7 eine Rolle.

Hast du auch in Modulen mit Microtime gemessen?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von frederic.schneider_4fb » Mi 13. Dez 2017, 14:20

Lieber Samuel,

vielen Dank für Deine Visualisierung. Ich würde die These von Faar allerdings auch insofern stützen als dass ich denke, mit den zunehmend höheren PHP-Versionen "rennt" auch die 4.9er schneller und nähert sich den Werten der 4.8 an. PHP ist immer besser auf objektorientierte Programmierung vorbereitet.
Frederic Schneider
Entwickler bei der four for business AG

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von Oldperl » Mi 13. Dez 2017, 15:15

Servus,
frederic.schneider_4fb hat geschrieben:
Mi 13. Dez 2017, 14:20
... mit den zunehmend höheren PHP-Versionen "rennt" auch die 4.9er schneller und nähert sich den Werten der 4.8 an. PHP ist immer besser auf objektorientierte Programmierung vorbereitet.
Auch hier ein klares Jein. Es stimmt, dass PHP sich in OOP weiterentwickelt hat. Jedoch gibt es kaum eine Annäherung von 4.9 an 4.8. PHP ist einfach kein JAVA und geht grundsätzlich anders mit Objekten um. Dazu kommen noch ein paar Designfehler, und ein gewisser Overhead, in Contenido 4.9, gerade in Bezug auf OOP, die das Ergebnis noch schlechter aussehen lassen. Daher ist die 4.8, mit ihrer in vielen Bereichen noch prozedurale Programmierung auch momentan noch überlegen, und ich denke auch nicht, dass sich das in absehbarer Zukunft ändern wird.
Es gibt sicherlich die Möglichkeit Contenido 4.9 vom Core her zu optimieren, jedoch braucht das Man-Power, eine klare Planung mit klaren Regeln. Allein deren Ausarbeitung benötigt schon ein wenig Zeit und ein gutes Team. Mir fallen auf Anhieb etliche Bereiche ein, bei denen man mit ein wenig geändertem Programm-Design unter der Haube den Core nach Außen optimieren kann, ob nun mit der Einsparung beim Speicherverbrauch, der Anzahl der DB oder Filesystem-Zugriffe oder der Anzahl notwendiger Objektinstanzen.

Meine internen Tests belegen, dass 4.9 auch unter PHP 7.1 langsamer ist als die 4.8er Schiene. Und für mich zählt hier im Vergleich primär das Backend, da dieses noch ungecached zeigt, wie schnell der Core wirklich ist.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von rethus » Do 14. Dez 2017, 15:50

frederic.schneider_4fb hat geschrieben:
Mi 13. Dez 2017, 14:20
ich denke, mit den zunehmend höheren PHP-Versionen "rennt" auch die 4.9er schneller und nähert sich den Werten der 4.8 an. PHP ist immer besser auf objektorientierte Programmierung vorbereitet.
Da muss auch ich ein klares "jEIN" entgegen setzen. :D
Ein fairer Vergleich wäre, wenn du 4.8 auf php7 lauffähig machst, und dieses dann mit 4.9 vergleichst. Und dann sähe es wahrscheinlich für 4.9 noch schlechter aus. :idea:

Objektorientierung ist ne schöne Sache, sollte aber (gerade mit Performance-Überlegungen im Hinterkopf) mit Bedacht eingesetzt werden. Man kann OOP ja bis ins kleinste Detail herunter brechen... ob es aber immer wirklich sinnvoll die Abstaktion so weit zu treiben ... ich denke nicht. Hier sind Erfahrungswerte und ein Blick über den Tellerrand wichtig, um die richtige Dosis zu finden.

Und hier kann ich Oldperl nur beipfichten, der mit folgender Aussage das Schwarze getroffen hat:
oldperl hat geschrieben:Dazu kommen noch ein paar Designfehler, und ein gewisser Overhead, in Contenido 4.9, gerade in Bezug auf OOP, die das Ergebnis noch schlechter aussehen lassen.
..
...
Mir fallen auf Anhieb etliche Bereiche ein, bei denen man mit ein wenig geändertem Programm-Design unter der Haube den Core nach Außen optimieren kann, ob nun mit der Einsparung beim Speicherverbrauch, der Anzahl der DB oder Filesystem-Zugriffe oder der Anzahl notwendiger Objektinstanzen.
Ich habe Kunden-Projekte bei denen in einem 4.9er Contenido sehr viele Kategorien und Artikel verwendet werden... Dort stöhnen wirklich alle Redakteure, wenn Sie mit Contenido arbeiten müssen.
Anfangs überzeugte noch die Bedienbarkeit und der logische Aufbau von Contenido. Doch je größer die Page wurde, desto langsamer wurde das Backend.
Wartezeiten von 10 Sekunden bei Artikelaufruf, oder Kategoriewechsel werden mittlerweile schon als angenehm schnell empfunden. Das einzige was diese Kunden noch bei Contenido hält, ist dass die den Aufwand/Kosten eines Umzugs auf ein anderes System scheuen.

Ich denke wenn Contenido nicht sterben soll, wäre an der Zeit, Contenido 4.9.15 gezielt in Richtung Performance zu optimieren. Zumindest erst einmal elementare/zentrale Bereiche gezielt, mit Profiler/Debugger und dem Bewusstsein für Performance bewaffnet zu überarbeiten.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von Oldperl » Do 14. Dez 2017, 16:06

Servus,
rethus hat geschrieben:
Do 14. Dez 2017, 15:50
Ein fairer Vergleich wäre, wenn du 4.8 auf php7 lauffähig machst, und dieses dann mit 4.9 vergleichst. Und dann sähe es wahrscheinlich für 4.9 noch schlechter aus. :idea:
Das kann ich genau so bestätigen, da ich diesen "fairen Vergleich" habe. Meine auf 4.8 basierende ConLite schlägt Contenido 4.9 in Bezug auf Performance im Backend unter PHP 7.0 und 7.1 um Längen. Im Frontend kann 4.9 noch ein wenig mit punkten, dem Caching geschuldet, wobei jedoch im Speicherbedarf die 4.9, auch wenn nicht alle Plugins wie bei ConLite bzw. 4.8 ja immer, mit installiert sind, keinen Stich gegen ConLite machen kann.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von frederic.schneider_4fb » Do 14. Dez 2017, 16:31

Allerdings setzt CON 4.8 auch weniger OOP ein als CON 4.9, also vergleichen wir da auch etwas Äpfel und Birnen ;-). Aber auch egal, wir sind uns in der Grundanalyse ja völlig einig!
Frederic Schneider
Entwickler bei der four for business AG

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Geschwindikeit 4.8.20 vs 4.9.12

Beitrag von rethus » Do 14. Dez 2017, 17:39

frederic.schneider_4fb hat geschrieben:
Do 14. Dez 2017, 16:31
Allerdings setzt CON 4.8 auch weniger OOP ein als CON 4.9, also vergleichen wir da auch etwas Äpfel und Birnen ;-). Aber auch egal, wir sind uns in der Grundanalyse ja völlig einig!
Äpfel und Birnen? Denke ich nicht... 4.8 verwendet - wie du selbst sagst - auch OOP. "Mehr" OOP zu verwenden, bzw. die Art und Weise dieses implementiert wird, ist durchaus eine Entscheidung, die von "schnell 4.8 ⇒ langsam 4.9" geführt hat.
Offenkundig ist also etwas verändert worden, was sich im Bereich Performance nachteilig auswirkt (auch wenn es im Bereich Wartbarkeit ggf. Vorteile brachte).

Somit (aus meiner Sicht) ein vollkommen valider vergleich, da hier von Ausgangspunkt ⇒ Ergebnis verglichen wird.
Zudem denke ich, das bei Contenido 4.9 die OOP nicht der Knackpunkt ist. Auch andere Websoftware basiert auf OOP und ist performant.
Ich denke eher es sind die von Oldperl erwähnten Punkte, die angegangen werden müssten. Also auch strategische überlegungen wie z.B. apc-Cache einsetzen, DB-Abfragen & File-Zugriff Memmory-Footprint minimieren, und/oder Daten gezielter via Ajax nachladen (aber bitte nicht mit der grauenvollen ajaxmain.php die es derzeit gibt :lol: ) usw. usw.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

tantalus
Beiträge: 30
Registriert: Do 3. Mär 2005, 12:06
Kontaktdaten:

Re: Geschwindigkeit 4.8.20 vs 4.9.12

Beitrag von tantalus » Di 19. Dez 2017, 23:32

Ich glaube garnicht, dass es sich um ein Problem von 4.8. auf 4.9 handelt.
Ich habe auf einem Server sowohl 4.9.4 als auch 4.9.12 laufen. Der Inhalt ist identisch aber die Seite auf Contenido 4.9.12 ist im Frontend erheblich langsamer.
Hingegen konnte ich keinen Unterschied zwischen 4.8 und 4.9.4 feststellen.
WIrd denn Contenido überhaupt noch weiter entwickelt? 4.9.12 ist ja glaube ich auch schon über ein Jahr alt.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Geschwindigkeit 4.8.20 vs 4.9.12

Beitrag von Oldperl » Mi 20. Dez 2017, 09:13

Servus,

dieses Fass werde ich hier nicht aufmachen
tantalus hat geschrieben:
Di 19. Dez 2017, 23:32
Ich glaube garnicht, dass es sich um ein Problem von 4.8. auf 4.9 handelt
Es ist Fakt, dass 4.9, in allen Versionen, langsamer ist als 4.8. Dieses wird vom Nutzer hauptsächlich im Backend moniert und im Frontend cachiert durch den Cache.
Es gibt viele Gründe warum dies so ist. Hauptgründe für mich sind verstärkter Einsatz von OOP und Steigerung der MySQL-Abfragen sowie fehlenden Optimierung des gesamten Systems auf Performance.
Darüber nun eine Diskussion vom Zaun zu brechen ist müßig und, da das Problem auch hier im Forum schon seit Jahren bekannt ist, völlig unnötig. Es muss, und wird, sich daran etwas ändern.
tantalus hat geschrieben:
Di 19. Dez 2017, 23:32
WIrd denn Contenido überhaupt noch weiter entwickelt? 4.9.12 ist ja glaube ich auch schon über ein Jahr alt.
Contenido wird fortwährend weiter entwickelt. Auch in den letzten, über zehn, Jahren gab es Phasen mit vielen neuen Versionen und mit weniger. Schaut man sich Bugtracker und Commits im GIT an, so werden zwar momentan vielleicht kleiner Brötchen gebacken, aber es geht voran. Hier ist, und wäre, eine aktive Community wichtig, die Feedback aus der aktiven Praxis gibt. Diese ist aber hier im Forum regelrecht eingeschlafen.
Gerne darf und sollte also Jede/Jeder hier im Forum seinen Senf dazu geben, Patches oder Addons posten und sein Scherflein zur Verbesserung von Contenido beitragen.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Antworten