Contao Performance: 3.5.35 vs 4.4.24

von Alexander Schwirjow

Der Server

Die jeweilige Installation wurde auf einer virtuellen Maschine durchgeführt, auf der nichts bis auf LAMP-Stack installiert wurde. Nach jedem Test wurde die Maschine zurückgesetzt, die Installationen von Contao liefen nicht parallel.

Als Content diente https://demo.contao.org/en/, welches für jede Version verfügbar ist und weitestgehend gleich vom Aufbau bleibt. Dies ist auch der Grund, warum Contao 4.6.3 nicht getestet wurde - das Demo konnte zum Zeitpunkt des Tests nicht installiert werden.1

Genaue Spezifikation:

OS: Ubuntu 18.04.1
Server: Apache 2.4.29
PHP: PHP 7.2.7
CPU: 1 vCore @ 2.80GHz
RAM: 3GB

Der Test

Getestet wurde mit ApacheBench der Version 2.3, 25 Request gleichzeitig, 1000 insgesamt. Der erste Durchlauf erfolgte mit memory_limit=128M, der zweite mit 512M.

ab -c 25 -n 1000 127.0.0.1:8080/

AB-Test

Visuell wird die Zahl der Anfragen pro Sekunde dargestellt. Die genauen Zahlen sind jeweils unterhalb aufgelistet.

Contao 3.5.35 (128M)

Document Length:        20481 bytes
Time taken for tests:   96.851 seconds
Requests per second:    10.33 [#/sec] (mean)
Time per request:       2421.265 [ms] (mean)
Time per request:       96.851 [ms] (mean, across all concurrent requests)
Transfer rate:          210.87 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:   869 2417  79.0   2416    2615
Waiting:       45 1084  54.4   1080    1290
Total:        869 2417  79.0   2416    2615

Contao 3.5.35 (512M)

Document Length:        17857 bytes
Time taken for tests:   108.042 seconds
Requests per second:    9.26 [#/sec] (mean)
Time per request:       2701.057 [ms] (mean)
Time per request:       108.042 [ms] (mean, across all concurrent requests)
Transfer rate:          165.31 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:   713 2647 351.9   2616    4809
Waiting:      312 1277 320.7   1232    3552
Total:        714 2647 351.9   2616    4809

Contao 4.4.24 (128M)

Document Length:        23497 bytes
Time taken for tests:   94.601 seconds
Requests per second:    10.57 [#/sec] (mean)
Time per request:       2365.032 [ms] (mean)
Time per request:       94.601 [ms] (mean, across all concurrent requests)
Transfer rate:          248.38 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0       2
Processing:   185 2351 237.6   2347    3918
Waiting:       87 2069 234.0   2069    3560
Total:        185 2352 237.5   2347    3918

Contao 4.4.24 (512M)

Document Length:        23497 bytes
Time taken for tests:   102.849 seconds
Requests per second:    9.72 [#/sec] (mean)
Time per request:       2571.224 [ms] (mean)
Time per request:       102.849 [ms] (mean, across all concurrent requests)
Transfer rate:          228.46 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       1
Processing:   635 2420 330.2   2376    6397
Waiting:      521 2133 321.5   2099    5761
Total:        637 2421 330.1   2376    6398

Lighthouse

Zusätzlich wurden die beiden Seiten mit Lighthouse getestet. Dieser Test sagt etwas mehr über die gefühlte Geschwindigkeit der Seiten.

Contao 3.5.35

Contao 4.4.24

Fazit

In beiden Tests liegt Contao 3 vorne, aber es handelt sich nicht um einen riesigen Vorsprung. Der Unterschied liegt im Bereich von Millisekunden und kann durchaus weiter verringert werden (Server optimieren, Skripte zusammenfassen etc.). Dafür gewinnt man mit der 4er Version mehr Sicherheit, einige neue Features und Support, der dem 3er demnächst ausgeht. Die Installation ist eigentlich noch einfacher, vorausgesetzt man hat SSH-Zugriff und entsprechende Kenntnisse von Composer, oder alternativ einen Server, der keine Probleme mit der Contao Manager Ausführung hat. Leider ist beides in Low-Price-Segment eher selten.

Alles in allem, die Performance-Differenz ist meiner Meinung nach kein aussagekräftiges Argument, um nicht zu aktualisieren. Wenn man eine Möglichkeit hat auf die neue Version zu aktualisieren, sollte man es tun.

P.S.: Mittlerweile sind die Versionen 3.5.36 und 4.4.26 veröffentlicht, die Änderungen beschränken sich aber auf Fehlerkorrekturen und Sicherheits-Updates und haben mindestens nicht direct mit der Performance zu tun. Der Test wurde also nicht aktualisiert.

Zurück