2015-02-18 2 views
64

У меня есть запрос, который включает в себя получение списка пользователей из таблицы в отсортированном порядке в зависимости от того, в какое время он был создан. Я получил следующую временную диаграмму от инструментов разработчика Chrome.Как уменьшить время ожидания (ttfb)

timing from the chrome

Вы можете видеть, что TTFB (время до первого байта) слишком высока.
Я не уверен, является ли это из-за сортировки SQL. Если это причина, то как я могу уменьшить это время?
Или это из-за TTFB. Я видел блоги, в которых говорится, что TTFB должен быть меньше (< 1сек). Но для меня это показывает> 1 сек. Это из-за моего запроса или чего-то еще?
Я не уверен, как я могу уменьшить это время.
Я использую угловой. Должен ли я использовать угловые для сортировки таблицы вместо сортировки SQL? (многие сообщения говорят, что это не должно быть проблемой)
Я хочу знать, как уменьшить TTFB. Ребята! Я на самом деле новичок в этом. Это задание, данное мне членами моей команды. Я не уверен, как уменьшить время TTFB. Я видел много сообщений, но не мог понять правильно. Что такое TTFB. Это время, затраченное сервером?

+5

Ваш вопрос показывает отсутствие понимания того, что здесь происходит. Это время ожидания сервера, поэтому независимо от того, используете ли вы AngularJS или какую-то другую структуру, это не имеет значения. Если вы хотите улучшить код на стороне сервера, вам действительно нужно показать нам код. – dirkk

ответ

5

TTFB - это нечто, что происходит за кулисами. Ваш браузер ничего не знает о том, что происходит за кулисами.

Вам необходимо изучить, какие запросы выполняются и как сайт подключается к серверу.

This статья может помочь понять TTFB, но в противном случае вам нужно углубиться в ваше приложение.

67

TTFB - это не время для первого байта тела ответа (т. Е. Полезных данных, таких как: json, xml и т. Д.), А скорее время до первого байта ответа, полученного от сервер. Этот байт является началом заголовков ответов.

Например, если сервер отправляет заголовки, прежде чем выполнять тяжелую работу (например, тяжелый SQL), вы получите очень низкий TTFB, но это не «правда».

В вашем случае TTFB представляет собой время, затрачиваемое на обработку данных на сервере.

Чтобы уменьшить TTFB, вам необходимо быстрее работать на стороне сервера.

+2

Чтобы дополнительно диагностировать тайминги, происходящие во время TTFB, вы можете использовать методы синхронизации на стороне сервера (например, таймеры настройки или журнал отладки) для отладки времени, затрачиваемого на каждую логику. – Raptor

+1

Посмотрите на эту статью, она подробно объясняет проблему и дает советы по возможным решениям: http://www.websiteoptimization.com/speed/tweak/time-to-first-byte/ – LucaM

+0

Остерегайтесь лечения TTFB как Самый важный момент: https://blog.cloudflare.com/ttfb-time-to-first-byte-considered-meaningles/ –

3

Я хотел бы предложить вам прочитать article и сосредоточиться на том, как оптимизировать общий ответ на запрос пользователя (либо страницу, результат поиска и т.д.)

Хороший аргумент в пользу этого является примером они расскажите об использовании gzip для сжатия страницы. Несмотря на то, что ttfb быстрее, когда вы не сжимаете, общий опыт пользователя хуже, потому что загрузка содержимого, которое не застегивается, занимает больше времени.

2

Если вы используете PHP, попробуйте использовать <?php flush(); ?> после </head> и до </body> или то, что вы хотите быстро выводить (например, заголовок или содержимое). Он выведет на самом деле код без ожидания до концов php. Не используйте эту функцию все время, или увеличение скорости не будет заметным.

More info

К сожалению мой плохой английский, надеюсь, что я помог тебе.

2

Я столкнулся с той же проблемой. Мой проект запущен на локальном сервере. Я проверяю свой PHP-код.

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

Я использую «localhost» для подключения db. Это может привести к проблеме, которую вы описываете. Вы можете изменить файл HOSTS. Добавьте «127.0.0.1 localhost».

+1

Thankyou. Я изменил «localhost» (TTFB: 1s) на «127.0.0.1» (TTFB: 12ms) –

+0

В моем случае этот ответ тоже помог: TTFB 2,39 с -> TTFB 110 мс. Почему кто-то сбил его? –