Как я уже упоминал в комментарии, к сожалению, некоторые документы устарели, в том числе тот, на котором вы видите первый рисунок выше.Full-codegen и Crankshaft больше не используются , это просто анализ и Ignition + TurboFan. (вы удалили изображение из устаревших документов, которые, к сожалению, по-прежнему связаны некоторымииз документов V8)
Ignition - это высокоскоростной интерпретатор байт-кода.
Анализатор V8 создает байт-код Ignition.Этот байт-код выполняется (интерпретируется) зажиганием.Код, который выполняется только один раз (код запуска и т. Д.) Или не выполняется, часто остается на уровне байт-кода и продолжает выполняться Ignition.
«Горячий» код переходит ко второй фазе, когда TurboFan запускается: Ввод TurboFan - это тот же байт-код, который интерпретирует Ignition (а не исходный код, как это было с Crankshaft), который затем агрессивно компилируется в высокооптимизированный машинный код, который выполняется напрямую (а не интерпретируется).
Связанная статья посвящена мотивации для перехода с Full-codegen и Crankshaft (экономия памяти в первом случае, трудности с реализацией и, в частности, оптимизация языковых возможностей во втором).Конструкция TurboFan также помогает авторам V8 минимизировать объем кода, специфичного для платформы, который они должны написать (имея промежуточное представление, которое, помимо прочего, они также могут использовать для написания обработчиков байт-кода Ignition).