SEOFAQ Telegram, маркетинг и SEO Канал SEOFAQT в мессенджере Telegram

Все чаты​Я обновил Nomads.com до PHP 8.2 с включенным Opcache, что...

 163  


​Я обновил Nomads.com до PHP 8.2 с включенным Opcache, что позволило сократить загрузку страницы с 1000-2000 мс до ~250 мс (таким образом, в 4-8 раз быстрее), сообщает Levelsio.

Opcache кэширует PHP-файлы целиком в оперативной памяти.

Я хакнул его забавным способом: чтобы держать весь датасет Nomads постоянно в оперативке сервера.

Поскольку весь сайт построен на данных о городах/странах (от страниц городов и списков стран до профилей юзеров с их маршрутами), критически важно, чтобы эти данные были всегда доступны и загружались БЫСТРО.

Без Opcache загрузка всего датасета занимала около секунды, а с включенным Opcache это происходит буквально менее чем за 1мс (1/1000 секунды).

Особенность сайта в том, что в отличие от других проектов, нельзя просто взять и выбрать ОДИН город из БД для показа - нужны ВСЕ данные, потому что это рейтинг городов/стран по всему миру.

При этом база данных Nomads.com просто огромная и содержит миллионы постоянно обновляемых (каждую минуту) показателей:

— температура,

— качество воздуха,

— уровень безопасности,

— криминальная статистика,

— удобство для пешеходов,

— лайки/дизлайки пользователей,

— отзывы,

— анализ тональности отзывов,

— и даже курсы валют (которые влияют на стоимость жизни!).

Каждый час робот (PHP-крон) сжимает эту базу данных в один датасет с финальными значениями: например, есть более 100 показателей скорости интернета в городе, он вычисляет их медиану и определяет, что в Бангкоке скорость интернета должна быть 45 Мбит/с.

Затем этот робот записывает PHP-файл, который буквально представляет собой финальный датасет в виде PHP-массива, и этот файл загружается при каждой загрузке страницы.

Обновление происходит каждый час, поэтому данные и рейтинги всегда свежие.

Этот датасет используется на каждой странице Nomads для разных целей:

1. показа лучших городов для жизни и удаленной работы,

2. возможности супербыстрой фильтрации без миллионов обращений юзеров к БД.

А с Opcache все это постоянно находится в оперативке.

@MikeBlazerX

Ссылки из поста:
https://x.com/levelsio/status/1854507708340142265
https://t.me/MikeBlazerX

Источник новости https://t.me/mikeblazerx/4213...