PRODEgemen Avrupa BaaS platformuKontrol Panelini Aç →

Mühendislik · 9 dk. okuma

WebAssembly soğuk başlangıç: kıyaslamaların gösterdiği şey

Affane Daylami · Fondateur · 19 Haziran 2026

Bloga geri dön

Hiçbir WebAssembly çalışma zamanı şu anda üçüncü bir tarafça paylaşılan, ayrıştırılmış ve tekrarlanabilir bir protokole göre ölçülen bir soğuk başlangıç rakamı yayınlamamaktadır. Wasmtime, Wasmer ve WasmEdge'in her biri hızlı önyükleme argümanlarını gösterir, ancak "önyükleme" kelimesinin tanımı nadiren aynıdır. Bu makale yığına bir rakam daha eklemiyor: Soğuk bir başlangıcın gerçekte neyi ölçtüğünü, yayınlanan rakamların neden karşılaştırılmadığını ve henüz kendi kıyaslamasını yayınlamadan üretimde wasmtime çalıştıran Aurabase'in gerçekte nerede durduğunu açıklıyor.

Bu İngilizce metin, Fransızca orijinalinden otomatik olarak oluşturulmuştur ve henüz incelenmemiştir.
Bu sayfa otomatik olarak çevrildi. İngilizce versiyonu yetkilidir.

Bu, kıyaslama metodolojimizinmantıksal devamıdır ve bu kez belirli bir metriğe uygulanır. Edge işlevlerimizin mimarisinin ayrıntıları için Aurabase'inRust mimarisihakkındaki temel makalemize veya iki çalışma zamanı arasındaki mimari farklılıklar için Wasmtime ve Wasmer karşılaştırmamıza bakın.

Temeller

WebAssembly soğuk başlatması birkaç aşama ekler (yükleme, kaydetme, derleme veya bağlantı kurma, başlatma, ilk çağrı) ve aynı aşamaları içermeyen iki rakam, aynı birimi görüntüleseler bile karşılaştırılamaz. Wasmer, Instaboot'u konuya doğrudan bir pazarlama tepkisi olarak pazarlıyor ancak kamuya mal olmuş rakamları, ayrıştırılmış bir metodoloji olmadan buraya dahil edilmiyor. Aurabase, Edge işlevleri için üretim bağımlılığı olarak wasmtime sürüm 43'ü çalıştırıyor (aura-functions/Cargo.tomlile doğrulandı), ancak bugüne kadar herhangi bir tekrarlanabilir soğuk başlatma kıyaslaması yayınlamadı. Bu makalede hiçbir Aurabase rakamı verilmemektedir: konu yöntemdir.

#
Gözlem

WebAssembly soğuk başlangıcı neden bir kez daha tartışmalı bir pazarlama argümanı haline geldi?

Soğuk başlangıç, yalnızca akademik bir araştırmanın konusu değil, bir kez daha WebAssembly çalışma zamanları arasındaki ticari farklılaşmanın bir ekseni haline geldi. Wasmer, soğuk başlatma sorununa doğrudan bir yanıt olarak sunulan Instaboot adlı bir özellikle bunu açık bir satış noktası haline getiriyor.

Bu refleks, arka uç kıyaslama metodolojisihakkındaki makalemizde zaten belgelenen dinamiği tam olarak hatırlatmaktadır: birçok rakip satıcı, onları üreten protokolü her zaman belirtmeden performans rakamlarını kendi ürün sayfalarında görüntüler. Yöntemi olmayan bir soğuk başlangıç ​​rakamı, yöntemi olmayan bir gecikme rakamından başka bir şeyi kanıtlamaz.

Diğer kıyaslamalarla aynı tuzak

Bir pazarlama sayfasında yayınlanan, malzemesiz, iş yükü olmayan ve ölçümün başlangıç ve bitiş noktası net bir şekilde tanımlanmayan bir soğuk başlangıç rakamının bir slogandan farkı yoktur. Bu, bir rakamın yayınlandığı günkü Aurabase dahil, bu makalede belirtilen tüm çalışma süreleri için geçerlidir.

#
Tanım

Soğuk bir başlangıç aslında neyi ölçer ve tanımın neden her şeyi değiştirdiğini

Soğuk başlatma tek bir işlem değildir: farklı aşamaların toplamıdır ve iki tedarikçinin aynı aşamaları aynı ad altında ölçmesi gerekmez.

Yükleniyor.wasm modülünün kurtarılması: ağ, disk veya bellekte zaten mevcut
DoğrulamaYürütmeden önce WebAssembly bayt kodu yapısını kontrol etme
Derleme veya bağlamaAnında JIT (Cranelift, LLVM) veya önceden derlenmiş bir yapıyı bağlama (AOT)
ÖrneklemeDoğrusal belleğin, tabloların ve globallerin tahsisi, olası bir başlatma fonksiyonunun yürütülmesi
İlk çağrıTalebin kendisinin işlenmesi, bazen açıklanan rakama dahil edilir, bazen hariç tutulur

Yalnızca önceden yüklenmiş ve halihazırda belleğe derlenmiş bir modülün örneğini sayan bir şekil, ağ yükleme ve derlemeyi içeren bir rakamdan mekanik olarak daha iyi görünecektir. Her ikisi de kendi başına yanlış değildir: sorun, ikisinden hangisinin ölçüldüğü belirtilmeden bunları karşılaştırdığımızda ortaya çıkar.

#
Akademik araştırma

Akademik literatür neyi gösteriyor ve rakamları neden birbiriyle karşılaştırılmıyor?

Son yıllarda arXiv'de ön baskı olarak yayınlanan akademik çalışma, WebAssembly modüllerinin farklı çalışma zamanlarında örneklenme süresini ölçmüştür. Bu çalışmaların ortak noktası yakınsak bir rakam değil; test edilen çalışma süresine, modülün boyutuna ve kullanılan donanıma bağlı olarak önemli bir farktır.

Bu yayınlardan alınan kesin rakamları gönüllü olarak bu makaleye dahil etmiyoruz. Yazma sırasında her makalenin metodolojisini iyice kontrol etmeden, izole edilmiş bir sayıyı yeniden yayınlamak, bu makalenin belgelediği sorunu tam olarak yeniden üretecektir: gerçekte neyi ölçtüğünü bilmemize olanak tanıyan, bağlamı olmayan bir sayı.

Öte yandan, bu varyansın öğrendiği şey doğrudan faydalıdır: Soğuk başlangıç, tam olarak genel metodoloji makalemizde açıklanan ortam eşliği disiplini tarafından hatırlandığı gibi (karşılaştırılan tüm sistemler için aynı donanım, aynı bölge, aynı önbellek durumu) büyük ölçüde ölçüm bağlamına bağlıdır.

#
Çalışma zamanı manzarası

Wasmtime, Wasmer, WasmEdge: farklı derleme öncelikleri

Bu tartışmada en çok bahsedilen üç bağımsız WebAssembly çalışma zamanı, derleme hızını ve yürütme performansını aynı şekilde dengelememektedir; bu, soğuk başlangıç rakamlarının neden terim ile terim arasında karşılaştırma yapmadığını kısmen açıklamaktadır.

WasmtimeDağıtımdan önce tarihsel olarak olası bir ön derleme rotasına sahip Cranelift derleme arka ucuÜretimde Aurabase tarafından Edge işlevleri için kullanıldı
VasmerÇalışma zamanı performansından ziyade derleme hızı için tasarlanmış bir arka uç da dahil olmak üzere birçok değiştirilebilir arka ucu uzun süredir belgelemiştir.Markets Instaboot, önceden başlatılmış bir örneğin anlık görüntüsüyle yeniden başlatma
WasmEdgeKamuya açık konumlandırma, kendi rekabetçi argümanıyla hızlı bir başlangıca odaklandıBu pazarlama alanında da aktif olan alternatif çalışma zamanı
Bu tablo çalışma zamanlarını sınıflandırmak için değil, karşılaştırılamazlığı göstermek için kullanılır

Bu mimariler projelerin kendisi tarafından kamuya açık olarak belgelenmektedir. Bu makale için bunları sürüm sürüm yeniden doğrulamadık ve bunlar bir performans sıralaması teşkil etmiyor. Bunlar yalnızca, üç farklı çalışma süresi tarafından görüntülenen üç soğuk başlangıç ​​rakamının neden hepsinin doğru olabileceğini, ancak yine de birbirleriyle karşılaştırılamayacağını açıklıyor.

Sunucusuz tartışmalarda sıklıkla karşı çıkılan iki çalışma zamanı arasındaki mimari ayrıntıların tamamı için özel karşılaştırmamıza bakın Wasmtime ve Wasmer.

#
Yeniden Yeterlilik

Instaboot'un gösterdiği ve ürün sayfasının tek başına neyi kanıtlayamadığı

Wasmer'in halka açık olarak iletişim kurduğu ürün konumlandırmasına göre Instaboot, her istekte tam başlatmayı yeniden başlatmak yerine, anlık görüntü mekanizması tarafından zaten başlatılmış olan bir örneği geri yükler. Hedeflediği sorunla tutarlı, gerçek bir mimari seçimdir.

Ancak bu makalenin yapmadığı şey, Wasmer ürün sayfasında gösterilen performans rakamını tekrarlamak değildir. Bu rakamı hangi donanımın, hangi iş yükünün ve hangi ölçüm protokolünün ürettiğini bilmeden, yeniden yayınlamak tam olarak yukarıda belgelenen hatayı yapar: bir pazarlama numarasını bağımsız bir karşılaştırma sonucu olarak ele almak.

Bu uyarıyı haklı çıkaran emsal

"1 ms'den daha az soğuk başlatma" gibi bir rakam, önceki Aurabase içeriği de dahil olmak üzere, tekrarlanabilir bir kıyaslamayla desteklenmeden, zaten kamuya açık olarak dolaşıyordu. Artık dahili olarak desteklenmiyor olarak değerlendiriliyor. Aynı kural, ayrıştırılmış bir metodoloji eşlik etmediği sürece Instaboot da dahil olmak üzere rakip bir çalışma zamanı tarafından görüntülenen herhangi bir rakam için geçerlidir.

#
Giriş kodu

Aurabase'in kendi soğuk başlangıcı hakkında bugün söyleyebilecekleri ve söyleyemeyecekleri

Aurabase, Edge işlevlerini bir pilot projede değil, üretim aşamasında Wasmtime üzerinde çalıştırıyor. İşte başvurunun tam olarak neye izin verdiği ve bu iddianın nerede bittiği.

3
ALINTILAN WASM ÇALIŞMA ZAMANLARI
Wasmtime, Wasmer, WasmEdge
0
BENCHMARK COLD START AURABASE ÇIKTI
Bugüne kadar tekrarlanabilir ve tarihli ölçüm yok
43
ÜRETİMDE WASMTIME VERSİYONU
aura-functions/Cargo.toml, ürün bağımlılığı

Bağımlılık, async ve cranelift özellikleri etkinleştirilerek, dev-dependency veya bir yorumda değil, hizmetin üretim bağımlılıklarında etkin olarak bildirildi:

Cargo.tomltoml
# Depodan gerçek alıntı
[dependencies]

# WASM Çalışma Zamanı
wasmtime = { version = "43", features = ["async", "cranelift"] }

Bu dosyanın söylemediği şey: kıyaslama metodolojimiz'de açıklanan protokole göre ölçülen hiçbir soğuk başlangıç ​​rakamı bugün bu çalışma zamanı için depoda mevcut değildir. Ayrıştırılmış yüzdelikler, donanım ve iş yükü ile tarihli bir ölçüm yayınlanana kadar, ürünün ölçülen özelliği olarak hiçbir Aurabase rakamı belirtilmemelidir. Platformun genel mimarisi için Aurabase Rust mimarisisütun makalemize bakın. Burada ele alınan metodolojik sorudan bağımsız olarak, soğuk başlatma WASM ile soğuk başlatma kabı arasında somut bir karşılaştırma için WASM vekapları arasındaki özel makalemize bakın.

#
Izgarayı okuma

İnanmadan Önce Soğuk Başlangıç Numarasını Nasıl Okuyabilirsiniz?

İlkini yayınladığımız gün bizimki de dahil olmak üzere herhangi bir başlangıç rakamına sorulacak yedi soru.

  1. Hangi aşamalar dahildir? Ağ yükleme, doğrulama, derleme, örnekleme, ilk çağrı: yalnızca bir kısmını sayan bir rakam, hepsini sayan bir rakamla karşılaştırılamaz.
  2. Modül gerçekten "soğuk" muydu? Zaten bellekte veya disk önbelleğinde bulunan bir modül, ilk kez yüklenen bir modülle aynı şeyi test etmez.
  3. JIT derlemesi mi yoksa önceden derlenmiş yapıt (AOT) mı? İki stratejinin yapısal olarak farklı başlangıç ​​maliyetleri vardır.
  4. Tek haneli mi yoksa dağılım mı? On turdaki en iyi koşu, bin koşudaki p95 ile aynı değere sahip değildir.
  5. Ekipman ve bölge belirtildi mi? Donanım özelliği olmayan bir şekil üçüncü şahıslar tarafından çoğaltılamaz.
  6. Eşit yük ve topolojide karşılaştırma? Şirket içinde barındırılan bir çalışma zamanını, rapor edilmeden yönetilen bir hizmetle karşılaştırmak, okumayı bozar.
  7. Test edilen çalışma zamanının tarihi ve sürümü? Hızla gelişen bir projeye ilişkin tarihsiz bir rakamın, birkaç ay sonra hiçbir anlamı yoktur.
#
Sıkça Sorulan Sorular

SSS

WebAssembly soğuk başlangıç tam olarak nedir?+
Bu, henüz aktif olmayan bir fonksiyona yönelik talebin gelişiyle ilk etkili yanıtı arasındaki süredir. Bu sefer birkaç farklı aşama eklenir: modülün yüklenmesi, bayt kodunun doğrulanması, derleme veya bağlantı oluşturma, örnekleme (doğrusal bellek, tablolar, geneller), ardından isteğin işlenmesi. İki soğuk başlangıç ​​rakamının mutlaka aynı aşamaları ölçmesi gerekmez.
"WebAssembly soğuk başlatma 1 ms'den az" rakamı doğru mu?+
Bu rakam, önceki Aurabase içeriği de dahil olmak üzere, ayrıştırılmış donanım, iş yükü ve yöntemle tekrarlanabilir bir kıyaslamayla desteklenmeden kamuya duyuruldu. Artık dahili olarak desteklenmiyor olarak değerlendiriliyor. Aynı uyarı, yayınlanmış bir metodoloji olmaksızın rakip bir çalışma zamanı tarafından görüntülenen tüm soğuk başlangıç ​​sayıları için de geçerlidir.
Wasmer özelliği Instaboot nedir?+
Wasmer'in kamuya açıkladığı ürün konumlandırmasına göre Instaboot, her istekte tam başlatmayı yeniden başlatmak yerine, anlık görüntü ile zaten başlatılmış olan bir örneği geri yükler. Bu makale, Wasmer ürün sayfasında görüntülenen herhangi bir performans rakamını içermemektedir: ayrı bir metodoloji ve materyal olmadan, bu rakamın yeniden yayınlanması, belgelediği sorunu yeniden oluşturacaktır.
Aurabase, Edge işlevleri için bir soğuk başlangıç rakamı yayınladı mı?+
Hayır. Aurabase, aura işlevlerinde üretim bağımlılığı olarak Wasmtime sürüm 43'ü (eşzamansız ve vinç kaldırma özellikleri) çalıştırır; bu, doğrudan hizmetin Cargo.toml dosyasında doğrulanan bir gerçektir. Ancak bu çalışma zamanı için depoda şu anda tekrarlanabilir ve tarihli bir protokolü takip eden bir soğuk başlangıç ​​kıyaslaması mevcut değildir.
WebAssembly bir kapsayıcıdan daha hızlı mı başlıyor?+
Mimari olarak bir WebAssembly modülü, bir konteynerden daha küçük bir başlangıç yüzeyine sahiptir (konuk çekirdek yok, monte edilecek tam dosya sistemi yok), bu da hızlı bir soğuk başlatmayı makul kılıyor. Ancak asıl fark büyük ölçüde test edilen senaryoya bağlıdır. WASM ve konteyner karşılaştırmasına adanan makalemiz bu noktayı somut vakalarla araştırıyor.

Alıntı yapılan dış kaynaklar: genel ürün belgeleri Wasmer (Instaboot), genel proje belgeleri Wasmtime (Bytecode Alliance), gösterdikleri performans rakamlarını bağımsız olarak tekrar kontrol etmeden bu makalenin hazırlanmasında danışılmıştır.

DAĞITILMAYA HAZIR MISINIZ?

Beş dakika içinde arka ucunuz.

Kredi kartı gerekmez · 500 MB ücretsiz · 50.000 MAU