Ja - Laravel ist wirklich so langsam. Ich habe dafür eine POC-App erstellt. Einfacher Router mit Anmeldeformular. Ich konnte nur 60 RPS mit 10 gleichzeitigen Verbindungen auf einem digitalen Ocean-Server für 20 US-Dollar (wenige GB RAM) erhalten.
Konfiguration:
2gb RAM
Php7.0
apache2.4
mysql 5.7
memcached server (for laravel session)
Ich habe Optimierungen, Composer Dump Autoload usw. ausgeführt und den RPS auf 43-ish gesenkt .
Das Problem ist, dass die App in 200-400 ms reagiert. Ich habe einen AB-Test von der lokalen Maschine ausgeführt, auf der Laravel aktiv war (dh nicht über den Webverkehr). und ich bekam nur 112 RPS; mit 200ms schnellerer Reaktionszeit mit durchschnittlich 300ms.
Im Vergleich dazu habe ich meine produktive PHP Native-App getestet, auf der täglich einige Millionen Anfragen auf einem AWS t2.medium (x3, Load Balanced) ausgeführt werden. Als ich über ELB 25 gleichzeitige Verbindungen von meinem lokalen Computer zu diesem über das Internet herstellte, erhielt ich ungefähr 1200 RPS. Großer Unterschied zwischen einer Maschine mit Last und einer Laravel-Anmeldeseite.
Dies sind Seiten mit Sitzungen (Elasticache / Memcached), Live DB-Lookups (zwischengespeicherte Abfragen über Memcached), Assets, die über CDNs gezogen wurden, usw. usw. usw.
Was ich sagen kann, Laravel klebt ungefähr 200-300ms Last über Dinge. Es ist in Ordnung für PHP-generierte Ansichten, schließlich ist diese Art von Verzögerung beim Laden tolerierbar. Bei PHP-Ansichten, die Ajax / JS verwenden, um kleine Updates zu verarbeiten, fühlt es sich jedoch langsam an.
Ich kann mir nicht vorstellen, wie dieses System mit einer Mandanten-App aussehen würde, während 200 Bots jeweils 100 Seiten gleichzeitig crawlen.
Laravel eignet sich hervorragend für einfache Apps. Lumen ist tolerierbar, wenn Sie nichts Besonderes tun müssen, das Middleware-Unsinn erfordert (IE, keine mandantenfähigen Apps und benutzerdefinierten Domänen usw.).
Ich mag es jedoch nie, mit etwas zu beginnen, das 300 ms Last für einen "Hallo Welt" -Post binden und verursachen kann.
Wenn du denkst "Wen interessiert das?"
.. Schreiben Sie eine vorausschauende Suche, die sich auf schnelle Abfragen stützt, um auf Vorschläge zur automatischen Vervollständigung über einige hunderttausend Ergebnisse zu antworten. Diese Verzögerung von 200-300 ms wird Ihre Benutzer absolut verrückt machen.
php artisan optimize --force