open atlas

js-engine

Внутренности движка JavaScript

Как V8 исполняет твой код — парсинг, байткод, скрытые классы, JIT, сборка мусора и как оставаться быстрым.

10 юнитов·41 уроков·~10 ч

Начать трек
00

С нуля

Что такое движок JS и почему его внутренности решают скорость приложения.
01

Как исполняется JS

Исходник → AST → байткод, который исполняет интерпретатор, ещё до JIT.
02

Значения и память

Как движок упаковывает числа, указатели и объекты в машинные слова.
03

Скрытые классы и IC

Объекты одной формы делят скрытый класс — это и ускоряет доступ к свойствам.
04

JIT

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

Замыкания и область видимости

Замыкания захватывают область в heap-контексты — с реальной ценой.
06

Сборка мусора

Поколенческий GC ставит на то, что объекты умирают молодыми — невидим, пока не станет проблемой.
07

Async вглубь

Event loop, микрозадачи и внутренности промисов, решающие порядок исполнения.
08

Замеры и оптимизация

Используй трейсы движка, чтобы держать код мономорфным и дружелюбным к JIT.
09

Собираем вместе

Профилируй и оптимизируй реальный hot path со знанием движка.

Проекты по этому треку

Guided-проекты, которые закрепляют изученное здесь.

Следующий трек

Система типов TypeScript вглубь

От структурной типизации до программирования на типах — дженерики, условные и отображённые типы, типизация реальных систем.