PRODСуверенная европейская платформа BaaSОткрыть панель управления →

Инженерное дело · 9 минута чтения

Холодный старт WebAssembly: что показывают тесты

Affane Daylami · Fondateur · 19 июня 2026 г.

Вернуться в блог

Ни одна среда выполнения WebAssembly в настоящее время не публикует данные холодного запуска, измеренные в соответствии с общим, дезагрегированным и воспроизводимым протоколом третьей стороны. Wasmtime, Wasmer и WasmEdge показывают аргументы быстрой загрузки, но редко имеют одинаковое определение слова «загрузка». Эта статья не добавляет еще одну цифру в кучу: она объясняет, что на самом деле измеряет холодный старт, почему опубликованные цифры не сравниваются и где на самом деле находится Aurabase, которая запускает wasmtime в производство, еще не опубликовав собственный тест.

Этот текст на английском языке был создан автоматически на основе французского оригинала и еще не проверялся.
Эта страница была переведена автоматически. Английская версия является авторитетной.

Это логическое продолжение нашей методики тестирования , на этот раз примененной к конкретной метрике. Подробную информацию об архитектуре наших функций Edge см. в нашей основной статье об архитектуреRust Aurabaseили в нашем сравнении Wasmtime и Wasmer, чтобы узнать об архитектурных различиях между двумя средами выполнения.

Самое необходимое

Холодный запуск WebAssembly добавляет несколько этапов (загрузка, фиксация, компиляция или связывание, создание экземпляра, первый вызов), и два рисунка, которые не включают одинаковые этапы, несопоставимы, даже если они отображают один и тот же модуль. Васмер позиционирует Instaboot как прямой маркетинговый ответ на эту тему, но его общественные деятели не включены сюда без дезагрегированной методологии. Aurabase использует wasmtime версии 43 в качестве производственной зависимости для своих функций Edge (проверено в aura-functions/Cargo.toml), но на сегодняшний день не опубликовало никаких воспроизводимых тестов холодного запуска. В этой статье не приводятся цифры по Aurabase: речь идет о методе.

#
Наблюдение

Почему холодный старт WebAssembly снова стал спорным маркетинговым аргументом

Холодный старт снова стал основой коммерческого различия между средами выполнения WebAssembly, а не просто предметом академических исследований. Васмер делает это явным аргументом в пользу функции Instaboot, представленной как прямой ответ на проблему холодной загрузки.

Этот рефлекс в точности напоминает динамику, уже описанную в нашей статье о методологии тестирования серверной части : некоторые конкурирующие поставщики отображают показатели производительности на собственной странице продукта, не всегда указывая протокол, который их произвел. Показатель холодного запуска без метода доказывает не что иное, как показатель задержки без метода.

Та же ловушка, что и для любого другого бенчмарка

Цифра холодного старта, опубликованная на маркетинговой странице, без материала, без рабочей нагрузки и без четкого определения начальной и конечной точки измерения, неотличима от слогана. Это относится ко всем средам выполнения, упомянутым в этой статье, включая Aurabase на день выпуска рисунка.

#
Определение

Что на самом деле измеряет холодный старт и почему это определение все меняет

Холодный пуск — это не одна операция: это сумма различных фаз, и два поставщика не обязательно измеряют одни и те же фазы под одним и тем же названием.

ЗагрузкаВосстановление модуля .wasm: сетевого, дискового или уже присутствующего в памяти
ВалидацияПроверка структуры байт-кода WebAssembly перед выполнением
Компиляция или связываниеJIT на лету (Cranelift, LLVM) или связывание уже предварительно скомпилированного артефакта (AOT)
Создание экземпляраВыделение линейной памяти, таблиц и глобалов, выполнение возможной функции запуска
Первый звонокОбработка самого запроса, иногда включенная в заявленную цифру, иногда исключенная

Цифра, учитывающая только реализацию уже загруженного и скомпилированного в память модуля, будет механически выглядеть лучше, чем цифра, включающая сетевую загрузку и компиляцию. Ни то, ни другое само по себе не является ложным: проблема возникает, когда мы сравниваем их, не уточняя, какой из двух был измерен.

#
Академические исследования

Что показывает научная литература, и почему ее цифры не сравниваются друг с другом

Академическая работа, опубликованная в виде препринта на arXiv в последние годы, измеряла время создания экземпляров модулей WebAssembly в различных средах выполнения. Общей точкой между этими работами является не сходящаяся цифра: это значительная разница в зависимости от тестируемого времени выполнения, размера модуля и используемого оборудования.

Мы добровольно не приводим в эту статью точные цифры, взятые из этих публикаций. Без тщательной двойной проверки методологии каждой статьи на момент написания, повторная публикация отдельного числа точно воспроизведет проблему, документированную в этой статье: число без контекста, которое позволило бы нам узнать, что оно на самом деле измеряет.

С другой стороны, то, что изучает это отклонение, непосредственно полезно: холодный запуск сильно зависит от контекста измерения, точно так же, как это напоминает дисциплина четности среды, описанная в нашей общей методологической статье (идентичное оборудование, один и тот же регион, одинаковое состояние кэша для всех сравниваемых систем).

#
Ландшафт времени выполнения

Wasmtime, Wasmer, WasmEdge: разные приоритеты компиляции

Три автономные среды выполнения WebAssembly, наиболее часто упоминаемые в этой дискуссии, не обеспечивают одинаковый баланс между скоростью компиляции и производительностью выполнения, что отчасти объясняет, почему их показатели холодного запуска не сравниваются между собой.

ВасмтаймСерверная часть компиляции Cranelift с исторически возможным маршрутом предварительной компиляции перед развертываниемИспользуется в производстве Aurabase для функций Edge.
ВасмерДавно задокументировал несколько взаимозаменяемых бэкэндов, в том числе бэкэнд, рассчитанный на скорость компиляции, а не на производительность во время выполнения.Markets Instaboot, перезагрузка с помощью снимка уже инициализированного экземпляра.
ВасмЭджПубличное позиционирование ориентировано на быстрый старт и имеет собственный конкурентный аргумент.Альтернативная среда выполнения также активна в этой маркетинговой области.
Эта таблица используется для иллюстрации несравнимости, а не для классификации сред выполнения.

Эти архитектуры публично документируются самими проектами. Мы не проверяли их версию за версией для этой статьи, и они не представляют собой рейтинг производительности. Они лишь объясняют, почему три показателя холодного запуска, отображаемые в трех разных средах выполнения, могут быть точными, но при этом несопоставимыми друг с другом.

Полную информацию об архитектуре двух сред выполнения, наиболее часто противопоставляемых в бессерверных обсуждениях, см. в нашем специальном сравнении Wasmtime и Wasmer.

#
Переквалификация

Что показывает Instaboot и чего не доказывает сама его страница продукта

Согласно позиционированию продукта, о котором публично сообщает Васмер, Instaboot восстанавливает экземпляр, уже инициализированный с помощью механизма моментальных снимков, вместо того, чтобы перезапускать полный запуск при каждом запросе. Это настоящий архитектурный выбор, соответствующий решаемой задаче.

Однако в этой статье не повторяются показатели производительности, отображаемые на странице продукта Wasmer. Не зная, какое оборудование, какая рабочая нагрузка и какой протокол измерения дали эту цифру, повторная публикация ее привела бы к ошибке, описанной выше: рассматривать маркетинговый показатель как независимый результат тестирования.

Прецедент, оправдывающий эту осторожность

Такая цифра, как «холодный старт менее 1 мс», уже распространялась публично, в том числе в предыдущем контенте Aurabase, без подтверждения воспроизводимыми тестами. Теперь он рассматривается внутри компании как неподдерживаемый. То же правило применяется к любым цифрам, отображаемым конкурирующей средой выполнения, включая Instaboot, при условии, что они не сопровождаются дезагрегированной методологией.

#
Проверено в коде

Что сегодня Aurabase может сказать о собственном холодном старте, а чего не может

Aurabase запускает свои функции Edge на Wasmtime в производстве, а не в пилотном проекте. Вот именно то, что позволяет заявка, и где эта претензия заканчивается.

3
ЦИТИРОВАННОЕ ВРЕМЯ РАБОТЫ WASM
Васмтайм, Васмер, ВасмЭдж
0
ВЫПУЩЕНО ЭТАЛОННОЕ ХОЛОДНОЕ ЗАПУСК AURABASE
На сегодняшний день нет воспроизводимых и датированных измерений.
43
ВЕРСИЯ WASMTIME В ПРОИЗВОДСТВЕ
aura-functions/Cargo.toml, зависимость от продукта

Зависимость объявляется жесткой с активированными функциями async и cranelift в производственных зависимостях службы, а не в dev-dependency или комментарии:

Cargo.tomltoml
# Актуальная выписка из репозитория
[dependencies]

# Среда выполнения WASM
wasmtime = { version = "43", features = ["async", "cranelift"] }

Чего не сказано в этом файле: на сегодняшний день в репозитории для этой среды выполнения не существует показателей холодного запуска, измеренных в соответствии с протоколом, описанным в нашей методологии тестирования . До тех пор, пока не будут опубликованы датированные измерения с детализированными процентилями, аппаратным обеспечением и рабочей нагрузкой, никакие показатели Aurabase не могут быть указаны в качестве измеряемой характеристики продукта. Общую архитектуру платформы см. в нашей основной статье Архитектура Aurabase Rust. Конкретное сравнение WASM с холодным запуском и контейнера с холодным запуском, независимо от рассматриваемого здесь методологического вопроса, см. в нашей специальной статье WASM против контейнеров.

#
Чтение сетки

Как прочитать номер холодного старта, прежде чем вы в это поверите

Семь вопросов, которые следует задать любому человеку с холодным стартом, включая наш в день его выпуска.

  1. Какие этапы включены? Загрузка сети, проверка, компиляция, создание экземпляра, первый вызов: цифра, которая считает только часть, не сравнима с цифрой, которая считает их все.
  2. Действительно ли модуль был «холодным»? Модуль, уже находящийся в памяти или в дисковом кеше, не тестирует то же самое, что модуль, загружаемый впервые.
  3. JIT-компиляция или предварительно скомпилированный артефакт (AOT)? Эти две стратегии имеют структурно разные стартовые затраты.
  4. Одна цифра или распределение? Лучший результат из десяти не имеет такого же значения, как p95 из тысячи.
  5. Указано оборудование и регион? Рисунок без спецификации оборудования не может быть воспроизведен третьей стороной.
  6. Сравнение при равной нагрузке и топологии? Сравнение локальной среды выполнения с управляемой службой без отчета об этом искажает показания.
  7. Дата и версия проверенной среды выполнения? Недатированная цифра для проекта, который быстро развивается, через несколько месяцев ничего не значит.
#
Часто задаваемые вопросы

Часто задаваемые вопросы

Что такое холодный запуск WebAssembly?+
Это время, которое отделяет поступление запроса на еще не активную функцию и ее первый эффективный ответ. На этот раз добавлено несколько отдельных этапов: загрузка модуля, проверка байт-кода, компиляция или связывание, создание экземпляра (линейная память, таблицы, глобальные переменные), а затем обработка запроса. Два показателя холодного запуска не обязательно измеряют одни и те же фазы.
Верна ли цифра «холодный старт WebAssembly менее 1 мс»?+
Эта цифра распространялась публично, в том числе в предыдущих материалах Aurabase, без подтверждения воспроизводимыми тестами с детализированным оборудованием, рабочей нагрузкой и методами. Теперь он рассматривается внутри компании как неподдерживаемый. То же предостережение применимо к любым числам холодного запуска, отображаемым конкурирующей средой выполнения без опубликованной методологии.
Что такое Instaboot, функция Wasmer?+
Согласно позиционированию продукта, о котором публично сообщает Васмер, Instaboot восстанавливает экземпляр, уже инициализированный с помощью моментального снимка, а не перезапускает полный запуск при каждом запросе. В эту статью не включены никакие показатели производительности, отображаемые на странице продукта Wasmer: без отдельной методологии и материалов повторная публикация этого показателя приведет к воспроизведению описанной в нем проблемы.
Выпустила ли Aurabase цифру холодного запуска для своих функций Edge?+
Нет. Aurabase использует Wasmtime версии 43 (асинхронные функции и функции кранового подъема) в качестве производственной зависимости в функциях aura, и этот факт проверяется непосредственно в Cargo.toml службы. Но в настоящее время в репозитории для этой среды выполнения не существует тестов холодного запуска, соответствующих воспроизводимому и устаревшему протоколу.
WebAssembly запускается быстрее, чем контейнер?+
С архитектурной точки зрения модуль WebAssembly имеет меньшую поверхность запуска, чем контейнер (нет гостевого ядра и полной файловой системы для монтирования), что делает возможным быстрый холодный запуск. Но фактическая разница сильно зависит от тестируемого сценария. Наша статья, посвященная сравнению WASM и контейнеров, исследует этот вопрос на конкретных примерах.

Цитируемые внешние источники: общедоступная документация продукта Wasmer (Instaboot), общедоступная документация проекта Wasmtime (Bytecode Alliance), с которой проводились консультации при подготовке этой статьи, без независимой двойной проверки показанных в них показателей производительности.

ГОТОВЫ К РАЗВЕРТЫВАНИЮ?

Ваш бэкэнд за пять минут.

Кредитная карта не требуется · 500 МБ бесплатно · 50 000 MAU