Kerncraft1
Дождемся выхода нового шаблона на BS
А кто мешает уже сейчас писать шаблоны на BS?
По теме топика: не используйте закодированные разработки и наладьте сотрудничество с хорошим программистом, который сможет в случае чего доработать/переделать неработающее дополнение.
Вывод: можно иметь хоть тысячу полей в типе контента и все будет работать быстро и правильно. А если сталкиваетесь с проблемами — просто пишите DWD в личку!
Всем спасибо!
проверяйте настройки полей
Еще раз проверил все поля.
Вчера обнаружил, что в некоторых полях (около 10) кеш был отключен. Включил: время выполнения значительно снизилось (с 3 секунд до 1 секунды).
Может необходимо все записи пересохранить? Правда руками это сделать не реально будет.
Скину вам данные в ЛС — с меня благодарность финансовая. Вы всегда решали любую проблему, с которой я к вам обращался)
так вы увидите какой тип полей съедает больше ресурсов
С вариантом
$field['type'] != 'seostring') continue;
По содержимому этой части можно будет судить кто виноват и что с этим делать.
Еще раз спасибо за подсказку!
Нашел участок кода, который выполняется долго:
$start = hrtime(true); // Парсим значения полей foreach($fields as $name=>$field){ $fields[ $name ]['html'] = $field['handler']->setItem($item)->parse( $item[$name] ); $fields[ $name ]['string_value'] = $field['handler']->getStringValue( $item[$name] ); } $finish = hrtime(true); $delta = $finish - $start; echo $delta . ' нс.';
Другой вопрос, что тут можно сделать?
Гружу страницу top-mods.ru/mods
Эта страница (и страница категорий) меня не интересует. На них TTFB 200-300мс
А вот на странице записей этого типа контента TTFB 1500-3000мс (сейчас опустился до 900-1300мс за счет включения кеширования данных некоторых полей).
Мало? Включите Отладку и смотрите ее данные
В первом сообщении есть информация, что данные в отладке все в зеленой зоне (самый долгий запрос к бд или вывод виджета менее сотых секунды).
Скиньте плиз в личку ваш сайт, на тот тип контента. Хочу посмотреть кое что
Сайт виден на скриншотах в первом посте.
пишите на хост
У меня VPS — настраиваю самостоятельно.
PS закралось одно подозрение. Попробую сейчас кое-что подшаманить. Возможно в этом и кроется проблема. Отпишусь.
мне писали быть не может
Это я писал, только в контексте вашего утверждения, что количество создаваемых полей ограничено.
Боюсь логику менять поздно. В данном типе контента почти 10 тысяч записей.
отключайте тогда по очереди поля в этом типе контента
Да, судя по всему, проблема в большом количестве полей. На локалке отрубил все поля привязанные к другим категориям кроме одной. Запись в этой категории стала грузиться мгновенно.
Это сильно печалит, так как на всех этих полях завязана широкая функциональность и в дальнейшем их должно было стать еще больше.
Вы проверяете своим кодом сколько времени уходит на контроллер.
А виноваты (с вероятностью 99%) виджеты.
Отключайте виджеты по одному и проверяйте. Кандидат №1 — второй сверху в левом сайдбаре ("вы подписаны")
Снова не то( Аналогичные виджеты стоят в разделе типа контента и категориях — загрузка быстрая (большой TTFB только в записях типа контента "Моды"). Также отладка CMS показывает, что виджеты грузятся практически мгновенно.
это из-за рекламы
Это не так. Проверяю скорость с включенным адблоком — он сразу режет всю рекламу. В любом случае она грузится асинхронно и не имеет отношения к показателю ttfb.
заметил баг
Это мелочи. Мне бы с загрузкой разобраться)
Вводная: Сайт крутиться на ВПС (3 ядра, 4 гб, apache+nginx, php7,3, OpCache). Главная страница, разделы типов контента, категории (да, собственно все страницы) загружаются весьма быстро (ttfb 100-300мс). Но, страницы самих записей (причем, только в одном типе контента) имеют ужасающе высокий ttfb 1500-3000мс.
Я понимаю, что в данном типе контента у меня используется множество полей, условий в шаблоне и т.д., но все же хочу разобраться, что именно тормозит начало загрузки (какие скрипты или участки кода так долго выполняются).
При включенной отладке не вижу каких-то долгих запросов или чего-то подозрительного. Все данные из отладки выполняются за тысячные доли секунды.
В шаблоне данного типа контента (дабы померить скорость моих костылей в файле) в начале прописал
<?php $start = hrtime(true); ?>
<?php $finish = hrtime(true); $delta = $finish - $start; ?> <?php echo $delta . ' нс.'; ?>
Так в чем же проблема того, что первый байт при открытии записей прилетает только через 1,5-3 секунды? Как мне найти это узкое место? Помогите пожалуйста разобраться!