yakor1988

Рейтинг
37
Регистрация
13.09.2010
Назар Федорко:
Задержки могут быть на стороне HTTP-сервера. Нужно проверить сколько времени проходит от запроса клиента до начала работы скрипта (это будет задержкой pending) и от завершения работы скрипта до получения данных клиентом.

Опять же, я ещё слабо во всем этом ориентируюсь, но если я правильно вас понял, то измерить мне нужно время от завершения отправки запроса до начала загрузки контента. Т.е. измерить ожидание (в Google Chrome это время именуется Waiting (TTFB)). Вот скриншот http://joxi.ru/NXEA4buBVn9mbz. Если этот waiting велик - о чём это говорит?

asteroid:
2-ой параметр массива - время запроса в сек. Эти 5 дополнительных выполняются за 1.5 мс.

Я в общем-то догадался, что это время запроса. Только вот если сложить, то 1.5 секунды не выходит (хотя может я чего-то не понимаю?). Вообще, если сложить всё время 52 запросов, то 1.5 секунды не выйдет, как это пишет google или тот же

<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.

Короче я запутался :) явно скачки из-за крона... Может его попробовать просто выключить?

asteroid:
http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis
Вместо print_r( $wpdb->queries ); можно в лог записать и посмотреть время выполнения запросов.

Спасибо! Нашёл по вашей ссылке, как отобразить все запросы и время каждого в футере сайта. Постараюсь разобраться

---------- Добавлено 28.07.2015 в 13:16 ----------

kgtu5:
для вордпресса это среднеминимальный показатель, обычно от 100 и выше.

А скачки количества запросов это нормально? Появление 5 дополнительных запросов не хило прибавляют времени. Постараюсь выяснить, какие это именно запросы

---------- Добавлено 28.07.2015 в 14:25 ----------

Нашёл те 5 дополнительных запросов, которые изредка появляются:

[3] => Array

(
[0] => SELECT option_value FROM wp_options WHERE option_name = '_transient_timeout_doing_cron' LIMIT 1
[1] => 0.00034189224243164
[2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_cron, spawn_cron, get_transient, get_option
)

[4] => Array
(
[0] => SELECT autoload FROM wp_options WHERE option_name = '_transient_doing_cron'
[1] => 0.00030303001403809
[2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_cron, spawn_cron, get_transient, delete_option
)

[5] => Array
(
[0] => SELECT autoload FROM wp_options WHERE option_name = '_transient_timeout_doing_cron'
[1] => 0.00030803680419922
[2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_cron, spawn_cron, get_transient, delete_option
)

[6] => Array
(
[0] => SELECT option_value FROM wp_options WHERE option_name = '_transient_doing_cron' LIMIT 1
[1] => 0.00029706954956055
[2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_cron, spawn_cron, set_transient, get_option
)

[7] => Array
(
[0] => INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`) VALUES ('_transient_doing_cron', '1438078636.2417569160461425781250', 'yes') ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)
[1] => 0.00052690505981445
[2] => require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_cron, spawn_cron, set_transient, add_option
)

Везде присутствует этот крон - планировщик задач. Не уверен, что он мне вообще нужен: публикации не планирую, плагинов нет, нужно только обновление вордпресса. + где-то вычитал, что при росте посещаемости крон сильно грузит сервер, ибо запускается каждый раз, когда новый юзер загружает страницу. Кто-нибудь сталкивался с кроном этим? Стоит ли его отключить через define('DISABLE_WP_CRON', true);?

Назар Федорко:
А чему вы удивляетесь? У вас динамический сайт, отдельные запросы могут кешироваться на определенное время и обновляться по его истечению.

Я конечно не спец, но хочу разобраться, нормально это или нет. Дело в том, что скачки запросов возникают просто при периодической перезагрузке одной и той же страницы. Без обновления контента, стилей или других компонентов сайта. Сроки кеширования стоят большие, поэтому не думаю, что это связано с истечением сроков.

не знаю как в ВП, но обычно вывод в конец страницы вставляют..

Ага, не подумал, спасибо. Поставил в футере - запросов стало 47. Среднее время 300-500 мс.

в абсолютных цифрах сколько это время? в 6 раз от 0,001с и от 1с это две большие разницы...

Скачки количества запросов возникает периодически, на момент написания этого ответа зафиксировать не смог. Но когда код стоял вверху, с 200-300 мс прыгало до 1.3 - 1.5 сек.

Вот и хочу узнать, нормально ли появление таких скачков? И соответственно, разобраться, все ли нормально с кодом/БД или нужно грешить на хостинг?

Так а где вообще эти запросы увидеть можно?

---------- Добавлено 28.07.2015 в 00:33 ----------

Вот оно. В типичных ситуациях совершается 47 запросов примерно за 300-500 мс. Иногда откуда-то прибавляет еще 5 запросов и получается что-то типа этого "52 за 1,459 секунды"😡

Судя по примеру гугла, он рекомендует стили вообще ПОСЛЕ </html> ставить - https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery

В принципе, я тоже не совсем поддерживаю эту логику, потому что сайт подгружается хоть и быстрее, но визуально коряво. Со стилями в коде переборщил, согласен - еще не придумал, как лучше сделать. Пока на этапе индексации решил прогнуться под поисковики, а там видно будет...

Перенес ссылку на стили выше js - даже балл добавило:) Спасибо!

В общем-то, и с менюхой вроде все ок, после снятия async

Кхм, нелепый пропуск... Спасибо. Однако не помогло... Еще обнаружил, что в ситуациях, когда меню не загружается, также не работает поле поиска (должно выезжать при нажатии). Так что наверно проблема в яваскриптах

---------- Добавлено 21.07.2015 в 23:49 ----------

Убрал асинхронную загрузку jquery - вроде полет нормальный. Если у кого есть рабочий рецепт - поделитесь, пожалуйста. А то пальцем в небо...