PRODPiattaforma BaaS europea sovranaApri Dashboard →

Ingegneria · 9 lettura minima

Avvio a freddo di WebAssembly: cosa mostrano i benchmark

Affane Daylami · Fondateur · 19 giugno 2026

Torniamo al blog

Nessun runtime WebAssembly attualmente pubblica una cifra di avvio a freddo misurata secondo un protocollo condiviso, disaggregato e riproducibile da una terza parte. Wasmtime, Wasmer e WasmEdge mostrano ciascuno argomenti di avvio rapido, ma raramente la stessa definizione della parola "avvio". Questo articolo non aggiunge un altro dato al mucchio: spiega cosa misura realmente un avvio a freddo, perché i dati pubblicati non si confrontano e dove si trova realmente Aurabase, che è in produzione con Wasmtime senza aver ancora pubblicato il proprio benchmark.

Questo testo inglese è stato generato automaticamente dall'originale francese e non è stato ancora rivisto.
Questa pagina è stata tradotta automaticamente. Fa fede la versione inglese.

Questa è la continuazione logica della nostra metodologia di benchmark , questa volta applicata a una metrica specifica. Per i dettagli sull'architettura delle nostre funzioni Edge, consulta il nostro articolo pilastro sull'architetturaRust di Aurabaseo il nostro confronto Wasmtime vs Wasmer per le differenze architetturali tra i due runtime.

L'essenziale

Un avvio a freddo di WebAssembly aggiunge diverse fasi (caricamento, commit, compilazione o collegamento, creazione di un'istanza, prima chiamata) e due figure che non includono le stesse fasi non sono confrontabili, anche se visualizzano la stessa unità. Wasmer commercializza Instaboot come risposta di marketing diretto all'argomento, ma i suoi personaggi pubblici non sono inclusi qui senza una metodologia disaggregata. Aurabase esegue wasmtime versione 43 come dipendenza di produzione per le sue funzioni Edge (verificato in aura-functions/Cargo.toml), ma fino ad oggi non ha pubblicato alcun benchmark di avvio a freddo riproducibile. In questo articolo non vengono forniti dati Aurabase: l'argomento è il metodo.

#
Osservazione

Perché l'avvio a freddo di WebAssembly è diventato ancora una volta un argomento di marketing controverso

L'avvio a freddo è diventato ancora una volta un asse di differenziazione commerciale tra i runtime WebAssembly, non solo un argomento di ricerca accademica. Wasmer rende questo un punto di forza esplicito con una funzionalità chiamata Instaboot, presentata come una risposta diretta al problema dell'avvio a freddo.

Questo riflesso ricorda esattamente la dinamica già documentata nel nostro articolo sulla metodologia di benchmark del backend : diversi fornitori concorrenti mostrano i dati sulle prestazioni sulla propria pagina di prodotto, senza sempre specificare il protocollo che li ha prodotti. Un valore di avvio a freddo senza metodo non dimostra altro che un valore di latenza senza metodo.

La stessa trappola di qualsiasi altro benchmark

Una cifra di partenza a freddo pubblicata su una pagina di marketing, senza materiale, senza carico di lavoro e senza una definizione chiara del punto di partenza e del punto finale della misurazione, è indistinguibile da uno slogan. Questo vale per tutti i tempi di esecuzione citati in questo articolo, incluso Aurabase nel giorno in cui viene rilasciata una figura.

#
Definizione

Cosa misura effettivamente un avvio a freddo e perché la definizione cambia tutto

Una partenza a freddo non è una singola operazione: è una somma di fasi distinte, e non è detto che due fornitori misurino le stesse fasi con lo stesso nome.

CaricamentoRipristino del modulo .wasm: di rete, su disco o già presente in memoria
ValidazioneControllo della struttura del bytecode WebAssembly prima dell'esecuzione
Compilazione o collegamentoJIT al volo (Cranelift, LLVM) o collegamento di un artefatto già precompilato (AOT)
IstanziazioneAllocazione di memoria lineare, tabelle e globali, esecuzione di un'eventuale funzione di avvio
Prima chiamataL'elaborazione della richiesta stessa, a volte inclusa nella cifra annunciata, a volte esclusa

Una figura che conta solo l'istanziazione di un modulo già caricato e già compilato in memoria avrà un aspetto meccanicamente migliore di una figura che include il caricamento e la compilazione della rete. Nessuno dei due è falso di per sé: il problema si presenta quando li confrontiamo senza specificare quale dei due è stato misurato.

#
Ricerca accademica

Cosa mostra la letteratura accademica e perché i suoi dati non sono confrontabili tra loro

Il lavoro accademico pubblicato come preprint su arXiv negli ultimi anni ha misurato il tempo di istanziazione dei moduli WebAssembly su diversi runtime. Il punto in comune tra questi lavori non è una cifra convergente: si tratta di una differenza significativa a seconda del runtime testato, della dimensione del modulo e dell'hardware utilizzato.

Non includiamo volontariamente in questo articolo cifre precise tratte da queste pubblicazioni. Senza aver ricontrollato accuratamente la metodologia di ciascun articolo al momento della stesura, ripubblicare un numero isolato riprodurrebbe esattamente il problema documentato in questo articolo: un numero senza contesto che ci permetterebbe di sapere cosa misura realmente.

Ciò che questa varianza apprende, invece, è direttamente utile: un avvio a freddo dipende fortemente dal contesto di misurazione, esattamente come richiamato dalla disciplina della parità ambientale descritta nel nostro articolo sulla metodologia generale (hardware identico, stessa regione, stesso stato della cache per tutti i sistemi confrontati).

#
Panorama dell'esecuzione

Wasmtime, Wasmer, WasmEdge: diverse priorità di compilazione

I tre runtime WebAssembly autonomi più citati in questo dibattito non bilanciano la velocità di compilazione e le prestazioni di esecuzione nello stesso modo, il che spiega in parte perché i dati relativi all'avvio a freddo non si confrontano da termine a termine.

Era tempoBackend di compilazione di Cranelift, con storicamente un possibile percorso di precompilazione prima della distribuzioneUtilizzato in produzione da Aurabase per le funzioni Edge
WasmerHa documentato a lungo diversi backend intercambiabili, incluso un backend progettato per la velocità di compilazione piuttosto che per le prestazioni di runtimeMarkets Instaboot, un riavvio tramite snapshot di un'istanza già inizializzata
WasmEdgePosizionamento pubblico focalizzato su un avvio rapido, con un proprio argomento competitivoRuntime alternativo attivo anche in quest'area di marketing
Questa tabella viene utilizzata per illustrare l'incomparabilità, non per classificare i tempi di esecuzione

Queste architetture sono documentate pubblicamente dai progetti stessi. Non li abbiamo verificati nuovamente versione per versione per questo articolo e non costituiscono una classifica delle prestazioni. Spiegano solo perché tre valori di avvio a freddo visualizzati da tre diversi tempi di esecuzione possono essere tutti accurati e tuttavia non confrontabili tra loro.

Per i dettagli architettonici completi tra i due runtime più spesso opposti nelle discussioni serverless, vedere il nostro confronto dedicato Wasmtime vs Wasmer.

#
Riqualificazione

Cosa mostra Instaboot e cosa la sua sola pagina di prodotto non dimostra

Secondo il posizionamento del prodotto che Wasmer comunica pubblicamente, Instaboot ripristina un'istanza già inizializzata tramite un meccanismo di snapshot, anziché riavviare un avvio completo ad ogni richiesta. Si tratta di una vera e propria scelta architetturale coerente con il problema che si pone.

Ciò che questo articolo non fa, tuttavia, è ripetere un dato relativo alle prestazioni visualizzato nella pagina del prodotto Wasmer. Senza sapere quale hardware, quale carico di lavoro e quale protocollo di misurazione ha prodotto questa cifra, ripubblicarla commetterebbe esattamente l’errore documentato sopra: trattare un numero di marketing come un risultato di benchmark indipendente.

Il precedente che giustifica questa cautela

Una cifra come "avvio a freddo inferiore a 1 ms" è già circolata pubblicamente, anche nei precedenti contenuti di Aurabase, senza essere supportata da un benchmark riproducibile. Ora viene trattato internamente come non supportato. La stessa regola si applica a qualsiasi cifra visualizzata da un runtime concorrente, incluso Instaboot, purché non sia accompagnata da una metodologia disaggregata.

#
Codice registrato

Cosa può dire oggi Aurabase riguardo alla propria partenza a freddo e cosa non può dire

Aurabase esegue le sue funzioni Edge su Wasmtime in produzione, non in un progetto pilota. Ecco esattamente cosa consente il deposito e dove finisce tale affermazione.

3
RUNTIME WASM CITATI
Wasmtime, Wasmer, WasmEdge
0
RILASCIATO IL BENCHMARK AURABASE CON AVVIO A FREDDO
Nessuna misurazione riproducibile e datata fino ad oggi
43
VERSIONE WASMTIME IN PRODUZIONE
aura-functions/Cargo.toml, dipendenza prod

La dipendenza è dichiarata hard, con le funzionalità async e cranelift attivate, nelle dipendenze di produzione del servizio, non in un dev-dependency né in un commento:

Cargo.tomltoml
# Estratto effettivo dal repository
[dependencies]

# Tempo di esecuzione WASM
wasmtime = { version = "43", features = ["async", "cranelift"] }

Cosa non dice questo file: non esistono dati di avvio a freddo misurati secondo il protocollo descritto nella nostra metodologia di benchmark oggi nel repository per questo runtime. Fino alla pubblicazione di una misurazione datata, con percentili disaggregati, hardware e carico di lavoro, nessuna cifra Aurabase dovrebbe essere citata come caratteristica misurata del prodotto. Per l'architettura generale della piattaforma, consultare il nostro articolo pilastro Architettura Aurabase Rust. Per un confronto concreto tra WASM con avvio a freddo e contenitore con avvio a freddo, indipendentemente dalla questione metodologica qui affrontata, vedere il nostro articolo dedicato WASM vscontenitori.

#
Griglia di lettura

Come leggere un numero di partenza a freddo prima di crederci

Sette domande da porre a qualsiasi figura di partenza a freddo, inclusa la nostra il giorno in cui ne pubblicheremo una.

  1. Quali fasi sono incluse? Caricamento della rete, validazione, compilazione, istanziazione, prima chiamata: una figura che ne conta solo una parte non è paragonabile a una figura che le conta tutte.
  2. Il modulo era davvero “freddo”? Un modulo già in memoria o nella cache del disco non verifica la stessa cosa di un modulo caricato per la prima volta.
  3. Compilazione JIT o artefatto precompilato (AOT)? Le due strategie hanno costi di avvio strutturalmente diversi.
  4. Cifra singola o distribuzione? Un miglior giro su dieci non ha lo stesso valore di un p95 su mille giri.
  5. Attrezzatura e regione specificate? Una figura senza specifiche hardware non può essere riprodotta da terzi.
  6. Confronto a parità di carico e topologia? Il confronto tra un runtime self-hosted e un servizio gestito senza segnalare distorce la lettura.
  7. Data e versione del runtime testato? Un dato senza data su un progetto che si evolve velocemente non significa più nulla dopo pochi mesi.
#
Domande frequenti

Domande frequenti

Cos'è esattamente l'avvio a freddo di WebAssembly?+
E' il tempo che separa l'arrivo di una richiesta per una funzione non ancora attiva e la sua prima risposta effettiva. Questa volta aggiunge diverse fasi distinte: caricamento del modulo, convalida del bytecode, compilazione o collegamento, istanziazione (memoria lineare, tabelle, globali), quindi elaborazione della richiesta. Due cifre di avvio a freddo non misurano necessariamente le stesse fasi.
La cifra "Avvio a freddo di WebAssembly inferiore a 1 ms" è vera?+
Questa cifra è circolata pubblicamente, anche nei precedenti contenuti di Aurabase, senza essere supportata da un benchmark riproducibile con hardware, carico di lavoro e metodo disaggregati. Ora viene trattato internamente come non supportato. La stessa cautela si applica a qualsiasi numero di avvio a freddo visualizzato da un runtime concorrente senza una metodologia pubblicata.
Cos'è Instaboot, la funzionalità Wasmer?+
Secondo il posizionamento del prodotto che Wasmer comunica pubblicamente, Instaboot ripristina un'istanza già inizializzata dallo snapshot anziché riavviare un avvio completo ad ogni richiesta. Questo articolo non include alcun dato sulle prestazioni visualizzato nella pagina del prodotto Wasmer: senza metodologia e materiale separati, la ripubblicazione di questo dato riprodurrebbe il problema che documenta.
Aurabase ha rilasciato una cifra di avvio a freddo per le sue funzioni Edge?+
No. Aurabase esegue Wasmtime versione 43 (funzionalità asincrone e di sollevamento gru) come dipendenza di produzione nelle funzioni aura, un fatto verificato direttamente nel Cargo.toml del servizio. Ma attualmente nel repository per questo runtime non esiste alcun benchmark di avvio a freddo che segua un protocollo riproducibile e datato.
WebAssembly si avvia più velocemente di un contenitore?+
Dal punto di vista architettonico, un modulo WebAssembly ha una superficie di avvio più piccola di un contenitore (nessun kernel guest, nessun filesystem completo da montare), il che rende plausibile un rapido avvio a freddo. Ma la differenza effettiva dipende fortemente dallo scenario testato. Il nostro articolo dedicato al confronto WASM vs container approfondisce questo punto con casi concreti.

Fonti esterne citate: documentazione pubblica del prodotto Wasmer (Instaboot), documentazione pubblica del progetto Wasmtime (Bytecode Alliance), consultata in preparazione di questo articolo, senza un doppio controllo indipendente dei dati sulle prestazioni mostrati.

PRONTO PER L'IMPLEMENTAZIONE?

Il tuo backend in cinque minuti.

Nessuna carta di credito richiesta · 500 MB gratuiti · 50.000 MAU