Супер секретная оптимизация, которая не была точно. Часть вторая.
Прошлый мой пост вызвал бурление задних приборов для высвобождения отходов жизнедеятельности у странных людей.
Но я уже привык к местным городским сумасшедшим, вы даже себе не представляете насколько, но никому бы не советовал с ними связываться.
Вот например:
Или
Дорогие друзья, я с этими людьми регулярно сталкиваюсь и на форуме и с их решениями, и мне кажется - это мое оценочное суждение, что у них недостает какой то необходимой хромосомы, один лезет в решения, которыми он портит магазины, второй просто флудит,как женщина бальзаковского возраста, которой мужчины отказывают в половых контактах в необходимых количествах, честно говоря эти два человека, и еще пару десятков, вызывают у меня всегда бурный смех. Спасибо ребят что вы есть, контакт Регины Дубовицкой, если что сами нагуглите, вам там светит отличная карьера.
Но все же. Вернемся к нашему герою и нашему магазину......
Без Регины и идиотов............
В чате форума есть такой тип 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 наберется храбости, он вам расскажет как у него было долго нудно, как ему вставили рога марк и лайтнинг, и как у него получилось теперь, его и моими молитвами....
- 11
7 коментарів
Recommended Comments
Створіть аккаунт або увійдіть для коментування
Ви повинні бути користувачем, щоб залишити коментар
Створити обліковий запис
Зареєструйтеся для отримання облікового запису. Це просто!
Зареєструвати аккаунтВхід
Уже зареєстровані? Увійдіть тут.
Вхід зараз