#оптимизация
4 постовGTA V — финансово самый успешный продукт в истории развлечений. Эту игру купили больше 90 миллионов копий, она заработала 6 миллиардов долларов. Для сравнения: «Звездные войны» собрали 4 миллиарда, самый успешный фильм в истории «Аватар» — 2.8 миллиарда.
GTA Online — версия игры, в которую можно играть с друзьями онлайн. Эта игра очень долго грузится. Вполне возможно, что многие отказались от игры именно из-за медленной загрузки.
Чувак нашел ошибку в программе и смог уменьшить время загрузки с 6 минут до 2 минут. Причем сделал это не имея исходных кодов, то есть во многом «вслепую! Вот очень короткая и классная статья, где он рассказывает, как нашел проблему и как её починил.
Почему такая жесть пролезла в продакшен супер успешного проекта, мы вряд ли узнаем, но все технари с опытом представят легко: сжатые сроки, «вас не спрашивали, делайте что скажут» и прочие «прелести» промышленной разработки софта. 😢
Делюсь золотой шкатулочкой с инструментами для оптимизации веб-страниц:
1. Самый крутой, о котором мало кто знает: Webpagetest. Огненная функция в нем — filmstrip view, где можно по-кадрово отсмотреть, как загружается страница и разглядеть, какой скрипт или стиль виноват в долгой загрузке. Медитируем на него без остановки.
2. Самый простой: PageSpeed Insights, довольно жесткий инструмент от гугла, где быстрая главная медузы набирает 6/100. Мы с командой RAWG последние 2 недели приносили человеческие жертвоприношения на страницу игры и подняли её мобильный рейтинг с 6 до 46, а десктопный — с 40 до 92. Главная польза PSI — простые и понятные советы, часть из которых очень дорого реализовать, но всё по делу. Вообще, его отчеты — отличный учебник по современной оптимизации для веб-разработчика. Дополнительный бонус — исходный код движка PSI, Lighthose открытый, можно посмотреть, за что именно дают или снимают баллы.
3. Google Chrome. Нам нужны две функции — первая, это Lighthouse (движок PSI из предыдущего пункта). Вторая — возможность затормозить сеть (вкладка Network) и затормозить процессор (вкладка Timeline). Позволяет отследить проблемы, которые на быстром интернете и мощном процессоре не заметны.
4. GTMetrix, многофукциональный комбайн, вдобавок к стандартным метрикам оценивает использование CDN, SSL и много других мелочей.
5. sitespeed.io: крутой инструмент для автоматизированного тестирования (докер образ, легкая интеграция в дэшборд графаны), внутри комбинирует множество опенсорс-утилит.
Самое главное, что нужно при оптимизации веб-страниц — пытливый ум и настойчивость. Не стесняйтесь просить помощи у знакомых, они могут сходу заметить то, что вы замыленным взглядом уже не увидите.
Если я забыл что-то важное — маякните в личку @samatg или в чатик @ctodailychat, пожалуйста.
Да пребудет с вами сила оптимизации!
Алексей Иванов из Dropbox (ex-Yandex) опубликовал просто титаническую статью про оптимизацию веб-сервера — текстовую версию своего вчерашнего доклада с NginxConf 2017 (видео пока нет).
Там и железо и софт, начиная с версий фирмвари флеш-дисков и заканчивая логированием; с советами, примерами кода и при этом не теряя большей картины из виду.
Во первых, это отличный чеклист по оптимизации.
Во вторых, в статье щедро проставлены ссылки на ключевые блоги и посты по разным областям технологий — это почти готовый учебный план.
Я легко могу себе представить, как выходит книга в серии животных O'Reilly, написанная на основе этой статьи.
https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/
P.S. Обратите внимание на кнопку "We're hiring", ненавязчиво висящую в левом верхнем углу на протяжении всей статьи и последний абзац — вот это job marketing, который я уважаю.
