Прошлый мой пост вызвал бурление задних приборов для высвобождения отходов жизнедеятельности у странных людей.
Но я уже привык к местным городским сумасшедшим, вы даже себе не представляете насколько, но никому бы не советовал с ними связываться.
Вот например:
Или
Дорогие друзья, я с этими людьми регулярно сталкиваюсь и на форуме и с их решениями, и мне кажется - это мое оценочное суждение, что у них недостает какой то необходимой хромосомы, один лезет в решения, которыми он портит магазины, второй просто флудит,как женщина бальзаковского возраста, которой мужчины отказывают в половых контактах в необходимых количествах, честно говоря эти два человека, и еще пару десятков, вызывают у меня всегда бурный смех. Спасибо ребят что вы есть, контакт Регины Дубовицкой, если что сами нагуглите, вам там светит отличная карьера.
Но все же. Вернемся к нашему герою и нашему магазину......
Без Регины и идиотов............
В чате форума есть такой тип EvgSmr, он же @t7p на форуме.
И уже где-то с полгода, наш герой жалуется, что вот мол кешеры не очень, у меня вот магаз в 100 мс, и я хочу быстрее, но карточки товара в 500 мс, а я не хочу прогревать кеш, чтобы отдавать как говорит маэстро @SooR .html
И вот наш герой. ко мне приходил два года назад за консалтом, что то у нас не сложилось и полгода последних в ввиду моей дикой занятости не получалось, но тут сошлись звезды и я добрался до его магазина.
Что мы поулчили. Главная страница +-100 мс, категории +-200 мс и ооочень долго в его понимании (да он ваще охренел) 500 мс карточки товара.
Когда мы сделали индексацию базы, настройку веб сервера, приведение в порядок всех параметров окружения мы полчили даже иногода 60 мс на главной, но все равно долгууууую карточку товара.
Заупустив профайлер mysql запросов, мы получили
0.05 мс запросы и вопрос явно был не в них.
И до момента, когда у нас карточка товара уходила на $this->response->setOutput все было отлично
и наши 50-60-80 мс были доступны и реализуемы.
Но как только у нас происходил рендер шаблона у нас утекало куда то 400-500 мс. Я не знаю как это делают другие у меня есть просто метод. Назвается он вардамп экзит.
Я просто беру и иду по кусочкам по коду и смотрю, где же таки у нас затупило. Ща набегут фанаты xdebug и прочей хренотени. Идите сразу в вальгаллу фанаты подобной чухни. Она нифига не показывает то что нам надо и реальный тайминги....
Ок мы локализовали, что у нас проблема в шаблоне, пошли его резать и нашли в унишопе по моему, такую вот фигню:
<?php echo @number_format($mpn, 2, '.', ''); ?>
Вот эта одна конструкция убивала все наши оптимайзы.........
Оказалось что в 7.3 php , нельзя просто взять и взять для функции number_format прислать пустой аргумент, или текстовый аргумент, он должен быть хотя бы float.
И оказалось что когда php обрабатывает такую ошибку, оно ахренеть тупит, а у нас тут вызов функции с ухом был, которое все ошибки прятало, и ....
Вобщем ухо прятало ошибки, их никто не видел, карточка товара тупила, мы потратили 8 часов на поиски этой фигни, и как только мы сделали нормальный обработчик входящим данным переменной $mpn вида
<?php if($mpn) { ?>
<span><?php echo number_format((float)$mpn, 2, '.', ''); ?></span>
<?php } ?>
У нас сразу все страницы товаров стали открываться до 100 мс.
Знаете, когда мы это все решили, у меня был один вопрос - а что так бывает? А что так можно было? И а какой же ты Джигурда автор кода с ухом, который такое сотворил.
Я не умаляю общих действий и заслуг владельца проекта, и моих. Но екалемене, вы когда пишите код, думайте пожалуйста головой.
У нас тут выделенный сервер, абсолютно оптимизированный движок, 50-100мс до секунды без кешей, и у нас прилетает вот такое вот бредовое ***но...
Ну имейте же совесть. Прошлый пост мой, он специально был хайповый. На него поймалась очередная порция жертв "переписи идиотов сообщества".
Но для всех вменяемых, пожалуйста, тестируйте ваш код в боевых условиях. Не делайте ухо!!!!
Ну и в целом если @t7p наберется храбости, он вам расскажет как у него было долго нудно, как ему вставили рога марк и лайтнинг, и как у него получилось теперь, его и моими молитвами....