Node.js использует движок V8 от Google, который компилирует JavaScript в машинный код непосредственно на стороне сервера.
Процесс выполнения выглядит так:
- Разбор (Parsing): V8 парсит JS-код и строит Abstract Syntax Tree (AST).
- Компиляция (Compilation): ТурбоФлэн (TurboFan) - компилятор в V8 - компилирует AST в машинный код. Сначала применяется более быстрый компилятор (Ignition), а затем, при оптимизации, более производительный (TurboFan).
- Выполнение (Execution): Скомпилированный код выполняется. За счет асинхронной архитектуры Node.js и цикла событий (Event Loop), операции ввода/вывода (например, чтение файла, сетевые запросы) не блокируют выполнение основного кода.
- Оптимизация/Деоптимизация (Optimization/Deoptimization): V8 постоянно профилирует код во время выполнения. Часто выполняемые участки (Hot Spots) могут быть оптимизированы для ускорения. Если исходные предположения для оптимизации перестают быть верными, происходит деоптимизация, и код возвращается к менее оптимизированной версии.
*Основные компоненты: