Эта книга представляет практические методы создания программных систем с минимальной задержкой. На основе первых принципов и до уровня промышленного кода она объясняет, как ускорять ПО на каждом слое технологического стека. Читатель узнает, что на самом деле означает латентность, чем она отличается от пропускной способности и почему напрямую влияет на пользовательский опыт. На практических примерах показано применение закона Литтла, разработка lock-free алгоритмов и построение масштабируемых систем кеширования. Подробно рассматривается, как поведение кода меняется в распределённых системах, базах данных и операционных системах, и какие типичные источники задержек встречаются в каждой из этих сред.
В книге вы научитесь:
корректно определять латентность, отличать её от пропускной способности и оценивать её влияние на UX
моделировать производительность с помощью закона Литтла и закона Амдала, измерять и визуализировать задержки
оптимизировать доступ к данным через колокацию, репликацию, партиционирование и кеширование
ускорять вычисления с помощью алгоритмических оптимизаций, настройки памяти и lock-free конкурентных структур
минимизировать задержки посредством асинхронной обработки, предиктивных методов и спекулятивного выполнения
Латентность — это задержка между причиной и следствием. На практике её избыток приводит к широкому спектру проблем: от неверных результатов вычислений и таймаутов до недовольства пользователей, которые покидают приложение. Устранение и диагностика таких задержек часто оказываются непростыми. Эта книга сочетает фундаментальные идеи с прикладными техниками, превращая результаты исследований в инструменты, которыми можно воспользоваться сразу.
О технологии
От потерянных микросекунд при маршрутизации сообщений до длительных загрузок страниц, латентность способна разрушить даже качественное программное решение. Эта книга показывает, как выявлять, понимать и устранять задержки в приложениях и инфраструктуре.
Посмотреть больше
Автор - Pekka Enberg
Pekka Enberg
Пекка Энберг — опытный инженер-программист, специализирующийся на операционных системах, базах данных и распределённых системах, с научным интересом в области низколатентных сетевых систем. В разные годы он работал над ядром Linux как мейнтейнер подсистемы динамического распределения памяти, а также участвовал в разработке ScyllaDB — высокопроизводительной распределённой базы данных, совместимой с Apache Cassandra и ориентированной на минимальные
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.