待機(ttfb)時間を短縮するにはどうすればよいですか


113

作成された時刻に基づいてソートされた順序でテーブルからユーザーのリストを取得するクエリがあります。Chromeデベロッパーツールから次のタイミング図を入手しました。

クロムからのタイミング

TTFB(最初のバイトまでの時間)が高すぎることがわかります。
SQLソートが原因かどうかはわかりません。それが理由であるなら、どうすればこの時間を短縮できますか?
それとも、TTFBが原因です。TTFBを短くする必要がある(1秒未満)と言うブログを見ました。しかし、私にとっては1秒を超えています。それは私のクエリのためか、何か他のもののためですか?
この時間をどのように減らすことができるかわかりません。
私は角張っています。SQLソートの代わりに角度を使用してテーブルをソートする必要がありますか?(多くの投稿はそれは問題ではないはずだと言います)
私が知りたいのはTTFBをどのように減らすことができるかです。みんな!私は実際にこれが初めてです。それは私のチームメンバーから私に与えられた仕事です。どのようにしてTTFB時間を短縮できるかわかりません。たくさんの投稿を見ましたが、正しく理解できませんでした。TTFBとは サーバーにかかる時間ですか?


8
あなたの質問は、ここで何が起こっているのかを理解していないことを示しています。これはサーバーを待機する時間なので、AngularJSを使用するか他のフレームワークを使用するかは関係ありません。サーバー側のコードを改善したい場合は、実際にコードを提示する必要があります。
dirkk 2015

@govindpatel、以下の私の回答が役に立ったか、質問への回答だと思われる場合は、正解としてマークしてください;)
Daniel T. Sobrosa '23年

単純なテーブルの並べ替えの場合(テーブルデータが既にフェッチされていて、別のプロパティでデータを並べ替えていると想定)、並べ替えられたデータの別の要求を送信するよりもクライアント側で実行する方がはるかに高速です。
Richik SC

回答:


115

TTFBは、応答の本文の最初のバイトまでの時間(つまり、json、xmlなどの有用なデータ)ではなく、サーバーから受信した応答の最初のバイトまでの時間です。このバイトは、応答ヘッダーの始まりです。

たとえば、サーバーがハードワーク(重いSQLなど)を実行する前にヘッダーを送信する場合、TTFBは非常に低くなりますが、「true」ではありません。

あなたの場合、TTFBはサーバーでのデータ処理に費やした時間を表します。

TTFBを削減するには、サーバー側の作業をより高速にする必要があります。


2
TTFB中に発生するタイミングをさらに診断するには、サーバー側のタイミングメソッド(セットアップタイマー、デバッグログなど)を使用して、各ロジックに費やされた時間をデバッグできます。
ラプター

1
この記事をご覧ください。問題について詳細に説明し、可能な解決策についてアドバイスを提供しています。websiteoptimization.com
tweak

最も重要な点としてTTFBの治療の用心:blog.cloudflare.com/...
オーウェンブラッカー

この回答が@govindpatelに役立つ場合は、正しい回答としてマークしてください;)
Daniel T. Sobrosa

16

同じ問題に遭遇しました。プロジェクトがローカルサーバーで実行されています。私のphpコードをチェックしました。

$db = mysqli_connect('localhost', 'root', 'root', 'smart');

localhostローカルデータベースへの接続に使用しています。それがあなたが説明している問題の原因かもしれません。HOSTSファイルを変更できます。行を追加

127.0.0.1 localhost


5
ありがとうございました。私は変更しlocalhostた:(1S TTFB) 127.0.0.1:(12ms のTTFB)
ミスターブラック

私の場合、この回答も役に立ちました:TTFB 2,39秒-> TTFB 110ミリ秒。なぜ誰かが反対票を投じたのですか?
Martin Pabst 2017

私は、Spring-Bootアプリケーションでもそれを修正したと思います。Docker-ContainerでPostgresデータベースを使用しています。TTFBは最大10秒でしたが、今では約40ミリ秒です:)
Sepultura

なぜ「localhost」にこれほど時間がかかるのですか?
showdev

14

TTFBは、裏で起こるものです。お使いのブラウザは、舞台裏で何が起こっているかについて何も知りません。

実行されているクエリと、Webサイトがサーバーに接続する方法を調べる必要があります。

この記事はTTFBを理解するのに役立つかもしれませんが、それ以外の場合は、アプリケーションをさらに掘り下げる必要があります。


4

この記事を読んで、ユーザーリクエスト(ページ、検索結果など)に対する全体的な応答を最適化する方法に重点を置くことをお勧めします。

これに対する良い議論は、gzipを使用してページを圧縮することについて彼らが与える例です。圧縮しない場合はttfbの方が高速ですが、圧縮されていないコンテンツのダウンロードには時間がかかるため、ユーザーの全体的なエクスペリエンスは最悪です。


必ずその記事のコメントセクションをチェックしてください。多くの人々は、TTFBに関心を持つよう説得力のある理由を述べています。
ザックマコンバー2018

4

PHPを使用している場合は、前後にすばやく出力したいセクション(ヘッダーやコンテンツなど)を使用<?php flush(); ?>してみてください。phpの終了を待たずに実際のコードを出力します。常にこの機能を使用しないでください。速度の増加が目立たなくなります。</head></body>

より詳しい情報

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.