
Ich habe mich umgesehen, kann aber keine definitive Antwort darauf finden, ob Dinge wie Bilder TTFB beeinflussen, was meine beste Vermutung wäre, warum das Laden meiner Site in der Produktion so lange dauert. Nachdem die Seite vollständig empfangen wurde, sehe ich, dass sie übertragen wurde, 40.7 mb resources
was viel ist, aber das anfängliche Laden der Seite macht davon nur 20,1 KB aus, gefolgt von Bildern/JS/CSS.
Die aus dem Netzwerkinspektor exportierte .har-Datei:
"pages": [
{
"startedDateTime": "2022-04-01T23:10:26.010Z",
"id": "page_1",
"title": "https://example.com/",
"pageTimings": {
"onContentLoad": 5878.881000004185,
"onLoad": 6390.734000000521
}
}
],
Und danach folgen Dinge wie Bilder/JS/CSS.
Dinge, die ich versucht habe:
- Das Ersetzen des Inhalts in index.php durch eine einfache Echo-Anweisung
<?php echo 'foobar'; ?>
löste das Problem sofort, da das Laden der Seite weniger als eine Sekunde dauerte. - Es wurde sichergestellt, dass die gleiche Cache-Konfiguration wie bei anderen Anwendungen vorhanden ist, die auf demselben Server gehostet werden und deren Ladezeit ebenfalls wesentlich geringer ist.
composer install --optimize-autoloader --no-dev
composer dump-autoload -o
php artisan route:cache
php artisan config:cache
Meine Frage lautet: Obwohl Ressourcen wie Bilder/CSS/JS ihre eigene TTFB haben, könnten sie die Zeit bis zum ersten Byte für die erste Seite verlängern?
Edit: Ein weiterer Punkt, auf den ich hinweisen wollte, ist, dass dies auf Seiten auftritt, die nicht ressourcenintensiv sind, und dass der Server, auf dem es sich befindet,Microsoft Windows Server 2016 StandardUndVMware, Inc. VMware7.1
Antwort1
Warum hat meine Laravel-App in der Produktion eine TTFB von über 3 Sekunden?
Profilieren Sie Ihren Code. Verwenden SiexdebugDannpfeifen Sie eszu Ihrer IDE oder zuKCacheGrind/QCacheGrindum zu sehen, was Ihren Code belastet.
obwohl Ressourcen wie Bilder/CSS/JS ihre eigene TTFB haben, könnten sie die Zeit bis zum ersten Byte für die erste Seite verlängern?
Nicht von alleine, hängt von Ihrer Serverauslastung und Ihren Konfigurationen ab.
Versuchen Sie erneut, zunächst ein Profil Ihres Codes zu erstellen. Vorzugsweise nicht in der Produktion.