PRODSouveräne europäische BaaS-PlattformÖffnen Sie das Dashboard →

Ingenieurwesen · 9 Min. Lesezeit

WebAssembly-Kaltstart: Was Benchmarks zeigen

Affane Daylami · Fondateur · 19. Juni 2026

Zurück zum Blog

Derzeit veröffentlicht keine WebAssembly-Laufzeit einen Kaltstartwert, der anhand eines von einem Dritten gemeinsam genutzten, disaggregierten und reproduzierbaren Protokolls gemessen wird. Wasmtime, Wasmer und WasmEdge zeigen jeweils Quickboot-Argumente, aber selten die gleiche Definition des Wortes „Boot“. Dieser Artikel fügt dem Stapel keine weitere Zahl hinzu: Er erklärt, was ein Kaltstart wirklich misst, warum die veröffentlichten Zahlen nicht vergleichbar sind und wo Aurabase wirklich steht, das Wasmtime in der Produktion ausführt, ohne bisher einen eigenen Benchmark veröffentlicht zu haben.

Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.

Dies ist die logische Fortsetzung unserer Benchmark-Methodik , diesmal angewendet auf eine bestimmte Metrik. Einzelheiten zur Architektur unserer Edge-Funktionen finden Sie in unserem Säulenartikel zurRust-Architektur von Aurabaseoder in unserem Vergleich Wasmtime vs. Wasmer für die architektonischen Unterschiede zwischen den beiden Laufzeiten.

Das Wesentliche

Ein WebAssembly-Kaltstart fügt mehrere Phasen hinzu (Laden, Festschreiben, Kompilieren oder Verknüpfen, Instanziieren, erster Aufruf) und zwei Abbildungen, die nicht dieselben Phasen enthalten, sind nicht vergleichbar, selbst wenn sie dieselbe Einheit anzeigen. Wasmer vermarktet Instaboot als Direktmarketing-Antwort auf das Thema, seine Persönlichkeiten des öffentlichen Lebens werden hier jedoch nicht ohne aufgeschlüsselte Methodik berücksichtigt. Aurabase führt wasmtime Version 43 als Produktionsabhängigkeit für seine Edge-Funktionen aus (verifiziert in aura-functions/Cargo.toml), hat jedoch bisher keine reproduzierbaren Kaltstart-Benchmarks veröffentlicht. In diesem Artikel werden keine Aurabase-Zahlen angegeben: Es geht um die Methode.

#
Beobachtung

Warum der WebAssembly-Kaltstart erneut zu einem umstrittenen Marketingargument geworden ist

Der Kaltstart ist wieder einmal zu einer Achse der kommerziellen Differenzierung zwischen WebAssembly-Laufzeiten geworden und nicht nur Gegenstand akademischer Forschung. Wasmer macht dies zu einem expliziten Verkaufsargument mit einer Funktion namens Instaboot, die als direkte Antwort auf das Kaltstartproblem präsentiert wird.

Dieser Reflex erinnert genau an die Dynamik, die bereits in unserem Artikel über die Backend-Benchmark-Methodik dokumentiert wurde: Mehrere konkurrierende Anbieter zeigen Leistungsdaten auf ihrer eigenen Produktseite an, ohne immer das Protokoll anzugeben, das sie erstellt hat. Eine Kaltstartzahl ohne Methode beweist nichts anderes als eine Latenzzahl ohne Methode.

Die gleiche Falle wie bei jedem anderen Benchmark

Eine auf einer Marketingseite veröffentlichte Kaltstartzahl, ohne Material, ohne Arbeitsaufwand und ohne klare Definition des Start- und Endpunkts der Messung, ist von einem Slogan nicht zu unterscheiden. Dies gilt für alle in diesem Artikel genannten Laufzeiten, einschließlich Aurabase am Tag der Veröffentlichung einer Figur.

#
Definition

Was ein Kaltstart tatsächlich misst und warum die Definition alles verändert

Ein Kaltstart ist kein einzelner Vorgang, sondern eine Summe unterschiedlicher Phasen, und zwei Lieferanten messen nicht unbedingt dieselben Phasen unter demselben Namen.

LadenWiederherstellung des .wasm-Moduls: Netzwerk, Festplatte oder bereits im Speicher vorhanden
ValidierungÜberprüfen der WebAssembly-Bytecode-Struktur vor der Ausführung
Kompilieren oder verlinkenJIT im laufenden Betrieb (Cranelift, LLVM) oder Verknüpfung eines bereits vorkompilierten Artefakts (AOT)
InstanziierungZuweisung von linearem Speicher, Tabellen und Globals, Ausführung einer eventuellen Startfunktion
Erster AnrufDie Bearbeitung der Anfrage selbst ist teils in der bekannt gegebenen Zahl enthalten, teils ausgeschlossen

Eine Zahl, die nur die Instanziierung eines bereits geladenen und bereits in den Speicher kompilierten Moduls zählt, sieht mechanisch besser aus als eine Zahl, die das Laden und Kompilieren über das Netzwerk umfasst. Beides ist an sich nicht falsch: Das Problem tritt auf, wenn wir sie vergleichen, ohne anzugeben, welches der beiden gemessen wurde.

#
Akademische Forschung

Was die wissenschaftliche Literatur zeigt und warum ihre Zahlen nicht miteinander vergleichbar sind

In den letzten Jahren wurde in wissenschaftlichen Arbeiten, die als Preprint auf arXiv veröffentlicht wurden, die Instanziierungszeit von WebAssembly-Modulen auf verschiedenen Laufzeiten gemessen. Der gemeinsame Punkt zwischen diesen Arbeiten ist kein konvergenter Wert: Es handelt sich um einen signifikanten Unterschied, der von der getesteten Laufzeit, der Größe des Moduls und der verwendeten Hardware abhängt.

Auf die Angabe konkreter Zahlen aus diesen Veröffentlichungen verzichten wir in diesem Artikel freiwillig. Ohne die Methodik jedes Artikels zum Zeitpunkt des Schreibens gründlich überprüft zu haben, würde die erneute Veröffentlichung einer isolierten Zahl genau das Problem reproduzieren, das dieser Artikel dokumentiert: eine Zahl ohne den Kontext, der es uns ermöglichen würde, zu wissen, was sie wirklich misst.

Was diese Varianz hingegen lernt, ist direkt nützlich: Ein Kaltstart hängt stark vom Messkontext ab, genau wie es die Disziplin der Umgebungsparität in unserem Artikel zur allgemeinen Methodik beschreibt (identische Hardware, gleiche Region, gleicher Cache-Status für alle verglichenen Systeme).

#
Laufzeitlandschaft

Wasmtime, Wasmer, WasmEdge: unterschiedliche Kompilierungsprioritäten

Die drei in dieser Debatte am häufigsten genannten eigenständigen WebAssembly-Laufzeiten bringen Kompilierungsgeschwindigkeit und Ausführungsleistung nicht auf die gleiche Weise in Einklang, was teilweise erklärt, warum ihre Kaltstartzahlen nicht von Begriff zu Begriff vergleichbar sind.

WasmtimeCranelift-Kompilierungs-Backend, mit historisch gesehen einer möglichen Vorkompilierungsroute vor der BereitstellungWird in der Produktion von Aurabase für Edge-Funktionen verwendet
WasmerHat seit langem mehrere austauschbare Backends dokumentiert, darunter ein Backend, das eher auf Kompilierungsgeschwindigkeit als auf Laufzeitleistung ausgelegt istMarkets Instaboot, ein Neustart per Snapshot einer bereits initialisierten Instanz
WasmEdgeDie öffentliche Positionierung konzentrierte sich auf einen schnellen Start mit einem eigenen WettbewerbsargumentAlternative Laufzeit auch in diesem Marketingbereich aktiv
Diese Tabelle dient zur Veranschaulichung der Unvergleichbarkeit und nicht zur Klassifizierung von Laufzeiten

Diese Architekturen werden von den Projekten selbst öffentlich dokumentiert. Wir haben sie für diesen Artikel nicht Version für Version erneut überprüft und sie stellen kein Leistungsranking dar. Sie erklären lediglich, warum drei Kaltstartzahlen, die bei drei unterschiedlichen Laufzeiten angezeigt werden, alle genau und dennoch nicht miteinander vergleichbar sein können.

Die vollständigen Architekturdetails zwischen den beiden Laufzeiten, die in serverlosen Diskussionen am häufigsten kontrovers diskutiert werden, finden Sie in unserem speziellen Vergleich Wasmtime vs. Wasmer.

#
Umqualifizierung

Was Instaboot zeigt und was die Produktseite allein nicht beweist

Gemäß der Produktpositionierung, die Wasmer öffentlich kommuniziert, stellt Instaboot eine bereits initialisierte Instanz durch einen Snapshot-Mechanismus wieder her, anstatt bei jeder Anfrage einen kompletten Startvorgang neu zu starten. Es handelt sich um eine echte architektonische Entscheidung, die im Einklang mit dem Problem steht, auf das sie abzielt.

Was dieser Artikel jedoch nicht tut, ist die Wiederholung einer auf der Wasmer-Produktseite angezeigten Leistungszahl. Ohne zu wissen, welche Hardware, welche Arbeitslast und welches Messprotokoll diese Zahl erzeugt hat, würde eine erneute Veröffentlichung genau den oben dokumentierten Fehler begehen: eine Marketingzahl als unabhängiges Benchmark-Ergebnis zu behandeln.

Der Präzedenzfall, der diese Vorsicht rechtfertigt

Eine Zahl wie „Kaltstart weniger als 1 ms“ wurde bereits öffentlich verbreitet, auch in früheren Aurabase-Inhalten, ohne dass sie durch einen reproduzierbaren Benchmark untermauert wurde. Es wird nun intern als nicht unterstützt behandelt. Die gleiche Regel gilt für alle Zahlen, die von einer konkurrierenden Laufzeitumgebung angezeigt werden, einschließlich Instaboot, sofern keine disaggregierte Methodik damit einhergeht.

#
Code eingecheckt

Was Aurabase heute über seinen eigenen Kaltstart sagen kann und was nicht

Aurabase führt seine Edge-Funktionen auf Wasmtime in der Produktion aus, nicht in einem Pilotprojekt. Hier erfahren Sie genau, was die Einreichung zulässt und wo dieser Anspruch endet.

3
Zitierte WASM-LAUFZEITEN
Wasmtime, Wasmer, WasmEdge
0
BENCHMARK-KALTSTART-AURABASE VERÖFFENTLICHT
Bisher keine reproduzierbare und datierte Messung
43
WASMTIME-VERSION IN PRODUKTION
aura-functions/Cargo.toml, Produktabhängigkeit

Die Abhängigkeit wird als hart deklariert, wobei die Funktionen async und cranelift aktiviert sind, in den Produktionsabhängigkeiten des Dienstes, nicht in einem dev-dependency oder einem Kommentar:

Cargo.tomltoml
# Tatsächlicher Auszug aus dem Repository
[dependencies]

# WASM-Laufzeit
wasmtime = { version = "43", features = ["async", "cranelift"] }

What this file does not say: no cold start figures measured according to the protocol described in our benchmark methodology exist today in the repository for this runtime. Until a dated measurement, with disaggregated percentiles, hardware and workload, has been published, no Aurabase figure should be cited as a measured characteristic of the product. For the general architecture of the platform, see our pillar article Aurabase Rust architecture. For a concrete comparison between cold start WASM and cold start container, independent of the methodological question addressed here, see our dedicated article WASM vscontainers.

#
Leseraster

So lesen Sie eine Kaltstartnummer, bevor Sie sie glauben

Sieben Fragen, die man jeder Kaltstartfigur stellen sollte, auch unserer am Tag der Veröffentlichung.

  1. Welche Phasen sind enthalten? Netzwerkladen, Validierung, Kompilierung, Instanziierung, erster Aufruf: Eine Zahl, die nur einen Teil davon zählt, ist nicht mit einer Zahl vergleichbar, die sie alle zählt.
  2. War das Modul wirklich „kalt“? Ein Modul, das sich bereits im Speicher oder im Festplatten-Cache befindet, testet nicht dasselbe wie ein Modul, das zum ersten Mal geladen wird.
  3. JIT-Kompilierung oder vorkompiliertes Artefakt (AOT)? Die beiden Strategien haben strukturell unterschiedliche Startkosten.
  4. Einzahlig oder Verteilung? Ein bester Lauf in zehn Läufen hat nicht den gleichen Wert wie ein p95 in tausend Läufen.
  5. Gerät und Region angegeben? Eine Figur ohne Hardwarespezifikation kann nicht von Dritten reproduziert werden.
  6. Vergleich bei gleicher Last und Topologie? Der Vergleich einer selbstgehosteten Laufzeit mit einem verwalteten Dienst, ohne dies zu melden, verzerrt die Lesart.
  7. Datum und Version der getesteten Laufzeit? Eine undatierte Zahl zu einem Projekt, das sich schnell weiterentwickelt, bedeutet nach ein paar Monaten nichts mehr.
#
Häufig gestellte Fragen

FAQs

Was genau ist WebAssembly-Kaltstart?+
Dies ist die Zeit, die zwischen dem Eintreffen einer Anfrage für eine noch nicht aktive Funktion und ihrer ersten wirksamen Antwort liegt. Dieses Mal werden mehrere unterschiedliche Phasen hinzugefügt: Laden des Moduls, Validieren des Bytecodes, Kompilieren oder Verknüpfen, Instanziierung (linearer Speicher, Tabellen, Globals) und dann Verarbeiten der Anfrage. Zwei Kaltstartwerte messen nicht unbedingt die gleichen Phasen.
Ist die Zahl „WebAssembly-Kaltstart weniger als 1 ms“ wahr?+
Diese Zahl wurde öffentlich verbreitet, auch in früheren Aurabase-Inhalten, ohne durch einen reproduzierbaren Benchmark mit disaggregierter Hardware, Arbeitslast und Methode gestützt zu werden. Es wird nun intern als nicht unterstützt behandelt. Die gleiche Vorsicht gilt für alle Kaltstartzahlen, die von einer konkurrierenden Laufzeit ohne veröffentlichte Methodik angezeigt werden.
Was ist Instaboot, die Wasmer-Funktion?+
Gemäß der Produktpositionierung, die Wasmer öffentlich kommuniziert, stellt Instaboot eine bereits initialisierte Instanz per Snapshot wieder her, anstatt bei jeder Anfrage einen kompletten Startvorgang neu zu starten. Dieser Artikel enthält keine Leistungszahlen, die auf der Wasmer-Produktseite angezeigt werden: Ohne separate Methodik und Material würde eine erneute Veröffentlichung dieser Zahl das darin dokumentierte Problem reproduzieren.
Hat Aurabase eine Kaltstartfigur für seine Edge-Funktionen veröffentlicht?+
Nein. Aurabase führt Wasmtime Version 43 (Async- und Cranelift-Funktionen) als Produktionsabhängigkeit in Aura-Funktionen aus, eine Tatsache, die direkt in der Cargo.toml des Dienstes überprüft wird. Für diese Laufzeit ist jedoch derzeit kein Kaltstart-Benchmark nach einem reproduzierbaren und veralteten Protokoll im Repository vorhanden.
Startet WebAssembly schneller als ein Container?+
Architektonisch gesehen hat ein WebAssembly-Modul eine kleinere Startoberfläche als ein Container (kein Gastkernel, kein vollständiges Dateisystem zum Mounten), was einen schnellen Kaltstart plausibel macht. Der tatsächliche Unterschied hängt jedoch stark vom getesteten Szenario ab. Unser Artikel zum Vergleich von WASM und Containern untersucht diesen Punkt anhand konkreter Fälle.

Zitierte externe Quellen: öffentliche Produktdokumentation Wasmer (Instaboot), öffentliche Projektdokumentation Wasmtime (Bytecode Alliance), konsultiert zur Vorbereitung dieses Artikels, ohne unabhängige Überprüfung der angezeigten Leistungszahlen.

BEREIT ZUM EINSATZ?

Ihr Backend in fünf Minuten.

Keine Kreditkarte erforderlich · 500 MB kostenlos · 50.000 MAU