Dieser Leitfaden listet verschiedene Tipps zur Leistungsoptimierung auf, von schnellen Optimierungen bis hin zu detaillierten Optimierungen, die beim Erstellen leistungsstarker Laravel-Anwendungen helfen können.
Es gibt viele Studenten auf Enlightn, die uns beim Verfassen dieses Leitfadens geholfen haben. Wenn Sie nach Automatisierungsleistungs- oder Sicherheitstools für Laravel suchen, sollten Sie diese Website besuchen.
Es besteht kein Zweifel daran, dass Benutzer schnellere Apps bevorzugen als langsam ladende Apps.
Laut einer Studie von Google werden 53 % der Nutzer mobiler Geräte verlieren (sie verlassen), wenn das Laden einer Website länger als 3 Sekunden dauert. Und die durchschnittliche Ladezeit einer mobilen Website beträgt etwa 15 Sekunden. Darum zählt Leistung!
Je zusätzliche Sekunde Ihre App zum Laden benötigt, desto niedriger ist Ihre Kundenkonversionsrate. Glücklicherweise ist dies für Laravel-Anwendungen kein schwer zu lösendes Problem.
Laravel verfügt über einige integrierte Leistungsverbesserungsfunktionen, die mit einer einfachen Konfiguration verwendet werden können.
Die wichtigste Leistungsverbesserung ist der Routen-Cache. Wussten Sie, dass jedes Mal, wenn Ihre Laravel-Anwendung gestartet wird, die Middleware bestimmt, Aliase aufgelöst, Routengruppen aufgelöst, Route-Controller-Aktionen angegeben und Anforderungsparameter verarbeitet werden?
Sie können den Artisan-Befehl route:cache
verwenden, um alle erforderlichen Routing-Informationen zwischenzuspeichern und die Routing-Verarbeitung zu überspringen: route:cache
来缓存所有必需的路由信息,从而跳过路由处理:
php artisan route:cache
这条命令可以给你带来 5 倍的性能提升!是最简单也是最有效的优化。
除了路由缓存,Laravel 还提供以下内容:
提示:你应该确保将上述缓存命令添加到部署脚本中,以便每次部署时都重新缓存。否则,路由或配置文件的任何更改都不会在应用中体现。
Laravel 开发者常犯的一个错误是在生产模式下安装所有依赖项。一些开发包(例如 Ignition)会在内存中记录查询、日志和转储,从而提供带有上下文的友好错误消息,简化调试过程。尽管这在开发中很有用,但会减慢生产环境中应用程序的速度。
在部署脚本中,使用 Composer 安装拓展包的同时请务必使用 -no-dev
选项:
composer install --prefer-dist --no-dev -o
此外,请确保如上所述在生产环境中使用 -o
选项。这可以让 Composer 可以通过生成「classmap」来优化自动加载器。
如果你的应用在运行时没有生成类,你可以选择使用 --classmap-authoritative
选项而不是 -o
rrreeeDieser Befehl kann Ihnen eine 5-fache Leistungssteigerung bescheren! Es ist die einfachste und effektivste Optimierung.
Ein häufiger Fehler, den Laravel-Entwickler machen, besteht darin, alle Abhängigkeiten im Produktionsmodus zu installieren. Einige Entwicklungspakete, wie z. B. Ignition, zeichnen Abfragen, Protokolle und Dumps im Speicher auf, stellen benutzerfreundliche Fehlermeldungen mit Kontext bereit und vereinfachen das Debuggen. Während dies in der Entwicklung nützlich ist, kann es Ihre Anwendung in der Produktion verlangsamen.
-no-dev
zu verwenden: rrreeeStellen Sie außerdem sicher, dass Sie -o verwenden in der Produktionsumgebung wie oben erwähnt
Option. Dadurch kann Composer den Autoloader durch die Generierung von „Classmaps“ optimieren. Wenn Ihre Anwendung zur Laufzeit keine Klassen generiert, können Sie zur weiteren Optimierung die Option --classmap-authoritative
anstelle der Option -o
verwenden. Schauen Sie sich unbedingt die Composer-Dokumentation Zu den häufigsten Beispielen für solche Aufgaben gehören im Allgemeinen das Parsen und Speichern von CSV-Dateien, die Interaktion mit APIs von Drittanbietern, das Senden von Benachrichtigungen an Benutzer, lange und zeitaufwändige Datenbankabfragen und Suchindexaktualisierungen.
Komprimierungsheader können einen erheblichen Einfluss auf die Anwendungsleistung haben. Stellen Sie sicher, dass Sie auf Ihrem Webserver die Komprimierung oder CDN für Textformatdateien wie CSS, JS, XML oder JSON aktivieren.
In Bildformaten sind bereits Komprimierungsalgorithmen implementiert und in den meisten Fällen wurden Bildformatdateien komprimiert, und Bilder sind keine Dateien im Textformat (mit Ausnahme des SVG-Formats, bei dem es sich um ein XML-Dokument handelt). Daher erfordert das Bildformat keine Komprimierung.
Sie können gzip oder brotli (ältere Browser unterstützen Brotli möglicherweise nicht) auf Ihrem Webserver oder CDN einrichten, um eine große Leistungssteigerung zu erzielen.
Normalerweise kann die Dateigröße durch Komprimierung um etwa 80 % reduziert werden!
Caching kann die Leistung Ihrer Anwendung verbessern, insbesondere für statische Ressourcen wie Bilder, CSS und JS-Dateien. Es wird empfohlen, Cache-Steuerungsheader gegebenenfalls auf Webserver- oder CDN-Ebene zu aktivieren. Wenn Sie diese Steuerheader in der Larvel-Anwendung statt auf dem Webserver festlegen möchten, können Sie die „Cache Control Middleware“ von Larvel verwenden. Das Cache-Header-Feld stellt sicher, dass der Browser bei mehrmaligem Besuch der Website nicht wiederholt statische Ressourcen anfordert. Dies verbessert das Benutzererlebnis, da die Website bei nachfolgenden Besuchen schneller geladen wird.
Laravel Mix bietet standardmäßig die Funktion „Cache-Reinigung“, sodass der Browser bei einer Änderung des CSS- oder JS-Codes nicht weiterhin alte zwischengespeicherte Inhalte verwendet.
7. Beschleunigen Sie statische Ressourcen mithilfe von CDN-Diensten.Einige beliebte CDNs sind CloudFlare, AWS CloudFront und Azure CDN. Die meisten CDNs haben ein bestimmtes Limit für kostenlose Testversionen. Bitte erwägen Sie die Verwendung eines CDN, um die Ladeleistung statischer Ressourcen zu verbessern.
Laravel bietet eine sofort einsatzbereite CDN-Unterstützungskomponente
Mixund Hilfsfunktionen
Asset 8. JS- und CSS-Code minimieren-Funktionalität für Ihre Produktionsskripte
9. Verwenden Sie den Cache mit BedachtSeiten-Cache
, um jede Dokumentseite zwischenzuspeichern.Stellen Sie außerdem sicher, dass Sie den Cache jedes Mal ungültig machen oder leeren, wenn sich der zwischengespeicherte Inhalt ändert. Wenn Sie beispielsweise Profilkopfzeilen zwischenspeichern, aktualisieren Sie den Cache, nachdem ein Benutzer sein Profilbild aktualisiert hat.
Wenn das Laden einiger Ihrer Seiten lange dauert oder eine hohe Speicherauslastung vorliegt, müssen Sie möglicherweise Leistungsengpässe identifizieren. Im Laravel-Ökosystem gibt es viele Tools, die Ihnen dabei helfen, darunter Laravel Telescope, Laravel Debugbar und Clockwork.
Einige häufige Leistungsengpässe sind:
Übersetzungsadresse: https://learnku.com/laravel/t/55702
[Verwandte Empfehlungen:
Laravel-Video-Tutorial]
Das obige ist der detaillierte Inhalt vonWie optimiert man die Leistung in Laravel8? Teilen von Optimierungstipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!