js-engine
Внутренности движка JavaScript
Как V8 исполняет твой код — парсинг, байткод, скрытые классы, JIT, сборка мусора и как оставаться быстрым.
Начать трек →С нуля
Что такое движок JS и почему его внутренности решают скорость приложения.Как исполняется JS
Исходник → AST → байткод, который исполняет интерпретатор, ещё до JIT.Значения и память
Как движок упаковывает числа, указатели и объекты в машинные слова.Скрытые классы и IC
Объекты одной формы делят скрытый класс — это и ускоряет доступ к свойствам.JIT
Движок спекулирует на типах, компилирует горячий код и деоптимизирует при ошибке.Замыкания и область видимости
Замыкания захватывают область в heap-контексты — с реальной ценой.Сборка мусора
Поколенческий GC ставит на то, что объекты умирают молодыми — невидим, пока не станет проблемой.Async вглубь
Event loop, микрозадачи и внутренности промисов, решающие порядок исполнения.Замеры и оптимизация
Используй трейсы движка, чтобы держать код мономорфным и дружелюбным к JIT.Собираем вместе
Профилируй и оптимизируй реальный hot path со знанием движка.Проекты по этому треку
Guided-проекты, которые закрепляют изученное здесь.
Лаборатория профилирования горячего пути
Возьми заведомо медленный кусок JavaScript и преврати его в управляемый эксперимент. Ты соберёшь микробенчмарк, которому действительно можно верить, отпрофилируешь горячий путь так, чтобы суметь назвать, что именно делает движок, и применишь оптимизации с учётом устройства движка — мономорфизм, устранение мегаморфных точек вызова, сокращение аллокаций — доказывая каждый выигрыш цифрами, а не ощущениями. Это вся дисциплина работы над производительностью в миниатюре: измерь, выдвини гипотезу о движке, измени одну вещь, измерь снова.
Движок регулярных выражений
Собери движок регулярных выражений с нуля через конструкцию Томпсона и симуляцию подмножества состояний — тот же метод, что делает grep и re2 иммунными к катастрофическому обратному ходу.
Система типов TypeScript вглубь
От структурной типизации до программирования на типах — дженерики, условные и отображённые типы, типизация реальных систем.