PRODمنصة BaaS الأوروبية السياديةافتح لوحة المعلومات →

الهندسة · 9 دقيقة للقراءة

البداية الباردة لـ WebAssembly: ما تظهره المعايير

Affane Daylami · Fondateur · 19 يونيو 2026

العودة إلى بلوق

لا ينشر أي وقت تشغيل WebAssembly حاليًا رقم بداية باردة يتم قياسه وفقًا لبروتوكول مشترك ومصنف وقابل للتكرار من قبل جهة خارجية. يعرض كل من Wasmtime وWasmer وWasmEdge وسيطات التشغيل السريع، ولكن نادرًا ما يكون لها نفس التعريف لكلمة "التمهيد". لا تضيف هذه المقالة رقمًا آخر إلى الكومة: فهي تشرح ما الذي تقيسه البداية الباردة حقًا، ولماذا لا تتم مقارنة الأرقام المنشورة، وأين تقف Aurabase حقًا، والتي تعمل في وقت غير مناسب في الإنتاج دون أن تنشر بعد معيارها الخاص.

تم إنشاء هذا النص الإنجليزي تلقائيًا من النص الأصلي الفرنسي ولم تتم مراجعته بعد.
تمت ترجمة هذه الصفحة تلقائيًا. النسخة الإنجليزية موثوقة.

هذا هو الاستمرار المنطقي لمنهجية قياس الأداء ، والتي يتم تطبيقها هذه المرة على مقياس محدد. للحصول على تفاصيل حول بنية وظائف Edge لدينا، راجع مقالتنا الأساسية حولبنية Rust لـ Aurabaseأو مقارنتنا Wasmtime vs Wasmer للتعرف على الاختلافات المعمارية بين وقتي التشغيل.

الأساسيات

تضيف البداية الباردة لـ WebAssembly عدة مراحل (التحميل، أو الالتزام، أو الترجمة، أو الارتباط، أو إنشاء مثيل، أو الاستدعاء الأول) ولا يمكن مقارنة الشكلين اللذين لا يتضمنان نفس المراحل، حتى لو كانا يعرضان نفس الوحدة. يقوم Wasmer بتسويق Instaboot كاستجابة تسويقية مباشرة للموضوع، ولكن لم يتم تضمين شخصياته العامة هنا دون منهجية مفصلة. تقوم Aurabase بتشغيل الإصدار 43 من wasmtime باعتباره تبعية إنتاج لوظائف Edge الخاصة بها (تم التحقق منها في aura-functions/Cargo.toml)، ولكنها لم تنشر أي معايير بداية باردة قابلة للتكرار حتى الآن. لا توجد أرقام Aurabase مذكورة في هذه المقالة: الطريقة هي الموضوع.

#
الملاحظة

لماذا أصبحت البداية الباردة لـ WebAssembly مرة أخرى حجة تسويقية متنازع عليها

أصبحت البداية الباردة مرة أخرى محورًا للتمييز التجاري بين أوقات تشغيل WebAssembly، وليست مجرد موضوع للبحث الأكاديمي. يجعل Wasmer هذه نقطة بيع واضحة من خلال ميزة تسمى Instaboot، والتي يتم تقديمها كإجابة مباشرة لمشكلة التمهيد البارد.

هذا الانعكاس يذكرنا تمامًا بالديناميكية الموثقة بالفعل في مقالتنا حول منهجية قياس الواجهة الخلفية : يعرض العديد من البائعين المتنافسين أرقام الأداء على صفحة منتجاتهم الخاصة، دون تحديد البروتوكول الذي أنتجها دائمًا. رقم البداية الباردة بدون طريقة لا يثبت شيئًا أكثر من رقم الكمون بدون طريقة.

نفس الفخ كما هو الحال مع أي معيار آخر

رقم البداية الباردة المنشور على صفحة التسويق، بدون مادة، بدون عبء عمل وبدون تعريف واضح لنقطة البداية ونقطة النهاية للقياس، لا يمكن تمييزه عن الشعار. وينطبق هذا على جميع أوقات التشغيل المذكورة في هذه المقالة، بما في ذلك Aurabase في يوم إصدار الرقم.

#
التعريف

ما هي البداية الباردة التي تقيسها في الواقع، ولماذا يغير التعريف كل شيء

البداية الباردة ليست عملية واحدة: إنها مجموع مراحل متميزة، ولا يقوم الموردان بالضرورة بقياس نفس المراحل تحت نفس الاسم.

جاري التحميلاسترداد وحدة .wasm: الشبكة أو القرص أو الموجودة بالفعل في الذاكرة
التحقق من الصحةالتحقق من بنية رمز بايت WebAssembly قبل التنفيذ
تجميع أو ربطJIT سريعًا (Cranelift، LLVM) أو ربط قطعة أثرية مجمعة مسبقًا (AOT)
إنشاء مثيلتخصيص الذاكرة الخطية والجداول والمجموعات العالمية وتنفيذ وظيفة البدء المحتملة
المكالمة الأولىمعالجة الطلب نفسه، أحيانًا يكون متضمنًا في الرقم المعلن، وأحيانًا مستبعدًا

الشكل الذي يحسب فقط إنشاء وحدة نمطية تم تحميلها بالفعل وتم تجميعها بالفعل في الذاكرة سيبدو ميكانيكيًا أفضل من الشكل الذي يتضمن تحميل الشبكة وتجميعها. وكلاهما ليس خطأ في حد ذاته: وتظهر المشكلة عندما نقارنهما دون تحديد أي منهما تم قياسه.

#
البحث الأكاديمي

ما الذي تظهره الأدبيات الأكاديمية، ولماذا لا تتم مقارنة أرقامها مع بعضها البعض

قام العمل الأكاديمي المنشور كطبعة أولية على arXiv في السنوات الأخيرة بقياس وقت إنشاء وحدات WebAssembly في أوقات تشغيل مختلفة. النقطة المشتركة بين هذه الأعمال ليست رقمًا متقاربًا: بل هناك فرق كبير اعتمادًا على وقت التشغيل الذي تم اختباره وحجم الوحدة والأجهزة المستخدمة.

نحن طوعًا لا ندرج أي أرقام دقيقة مأخوذة من هذه المنشورات في هذه المقالة. ومن دون إجراء فحص دقيق لمنهجية كل ورقة بحثية في وقت كتابة هذا التقرير، فإن إعادة نشر رقم معزول من شأنه أن يعيد إنتاج المشكلة التي توثقها هذه المقالة بالضبط: رقم بدون سياق يسمح لنا بمعرفة ما يقيسه بالفعل.

من ناحية أخرى، فإن ما يتعلمه هذا التباين مفيد بشكل مباشر: تعتمد البداية الباردة بشدة على سياق القياس، تمامًا كما يشير إلى نظام تكافؤ البيئة الموضح في مقالتنا المنهجية العامة (أجهزة متطابقة، نفس المنطقة، نفس حالة ذاكرة التخزين المؤقت لجميع الأنظمة التي تمت مقارنتها).

#
المشهد وقت التشغيل

Wasmtime، Wasmer، WasmEdge: أولويات التجميع المختلفة

أوقات تشغيل WebAssembly الثلاثة المستقلة التي تم ذكرها في هذا النقاش لا توازن بين سرعة التجميع وأداء التنفيذ بنفس الطريقة، وهو ما يفسر جزئيًا سبب عدم مقارنة أرقام البداية الباردة الخاصة بها من مصطلح إلى آخر.

واسمتايمالواجهة الخلفية لتجميع Cranelift، مع وجود مسار تجميع مسبق محتمل تاريخيًا قبل النشريُستخدم في الإنتاج بواسطة Aurabase لوظائف Edge
واسمرقام بتوثيق العديد من الواجهات الخلفية القابلة للتبديل منذ فترة طويلة، بما في ذلك الواجهة الخلفية المصممة لسرعة الترجمة بدلاً من أداء وقت التشغيلMarkets Instaboot، إعادة التشغيل عن طريق لقطة لمثيل تمت تهيئته بالفعل
WasmEdgeركز الموقف العام على البداية السريعة، مع حجتها التنافسية الخاصةوقت التشغيل البديل نشط أيضًا في مجال التسويق هذا
يُستخدم هذا الجدول لتوضيح عدم المقارنة، وليس لتصنيف أوقات التشغيل

يتم توثيق هذه البنى علنًا بواسطة المشاريع نفسها. لم نقم بإعادة التحقق منها إصدارًا تلو الآخر لهذه المقالة، ولا تشكل تصنيفًا للأداء. إنها تشرح فقط لماذا يمكن أن تكون أرقام البداية الباردة الثلاثة المعروضة في ثلاثة أوقات تشغيل مختلفة دقيقة ولكنها غير قابلة للمقارنة مع بعضها البعض.

للحصول على التفاصيل المعمارية الكاملة بين وقتي التشغيل اللذين غالبًا ما يتعارضان في المناقشات التي لا تحتوي على خادم، راجع المقارنة المخصصة لدينا Wasmtime vs Wasmer.

#
إعادة التأهيل

ما يعرضه Instaboot، وما لا تثبته صفحة المنتج الخاصة به وحدها

وفقًا لوضع المنتج الذي يعلنه Wasmer علنًا، يستعيد 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 vs.

#
شبكة القراءة

كيفية قراءة رقم البداية الباردة قبل أن تصدقه

سبعة أسئلة يجب طرحها على أي شخصية بداية باردة، بما في ذلك سؤالنا في اليوم الذي نصدر فيه واحدًا.

  1. ما هي المراحل المضمنة؟ تحميل الشبكة، والتحقق من الصحة، والتجميع، وإنشاء مثيل، والاتصال الأول: الرقم الذي يحسب جزءًا منه فقط لا يمكن مقارنته بالرقم الذي يحصيها جميعًا.
  2. هل كانت الوحدة "باردة" حقًا؟ الوحدة النمطية الموجودة بالفعل في الذاكرة أو ذاكرة التخزين المؤقت على القرص لا تختبر نفس الشيء الذي تختبره الوحدة التي تم تحميلها لأول مرة.
  3. تجميع JIT أو قطعة أثرية مجمعة مسبقًا (AOT)؟ لكل من الاستراتيجيتين تكاليف بدء تشغيل مختلفة من الناحية الهيكلية.
  4. رقم واحد أم توزيع؟ أفضل تشغيل خلال عشرة ليس له نفس قيمة p95 في ألف تشغيل.
  5. المعدات والمنطقة المحددة؟ لا يمكن لجهة خارجية إعادة إنتاج الشكل الذي لا يحتوي على مواصفات الأجهزة.
  6. مقارنة عند التحميل المتساوي والطوبولوجيا؟ تؤدي مقارنة وقت تشغيل مستضاف ذاتيًا بخدمة مُدارة دون الإبلاغ عنها إلى تشويه القراءة.
  7. تاريخ وإصدار وقت التشغيل الذي تم اختباره؟ رقم غير مؤرخ لمشروع يتطور بسرعة لا يعني شيئًا بعد بضعة أشهر.
#
الأسئلة المتداولة

الأسئلة الشائعة

ما هي البداية الباردة لـ WebAssembly بالضبط؟+
هذا هو الوقت الذي يفصل بين وصول طلب لوظيفة غير نشطة بعد وأول استجابة فعالة لها. تضيف هذه المرة عدة مراحل متميزة: تحميل الوحدة، والتحقق من صحة الرمز الثانوي، والتجميع أو الارتباط، وإنشاء مثيل (الذاكرة الخطية، والجداول، والمجموعات العالمية)، ثم معالجة الطلب. لا يقيس رقما البداية الباردة بالضرورة نفس المراحل.
هل الرقم "بدء تشغيل WebAssembly البارد بأقل من 1 مللي ثانية" صحيح؟+
تم تداول هذا الرقم علنًا، بما في ذلك محتوى Aurabase السابق، دون دعمه بمعيار قابل للتكرار مع أجهزة وعبء عمل وطريقة مصنفة. يتم التعامل معه الآن داخليًا على أنه غير مدعوم. وينطبق نفس الحذر على أي أرقام بداية باردة يتم عرضها في وقت تشغيل منافس دون منهجية منشورة.
ما هي ميزة Instaboot، Wasmer؟+
وفقًا لموضع المنتج الذي أعلنه Wasmer علنًا، يستعيد Instaboot مثيلًا تمت تهيئته بالفعل بواسطة لقطة بدلاً من إعادة تشغيل بدء التشغيل بالكامل مع كل طلب. لا تتضمن هذه المقالة أي أرقام أداء معروضة على صفحة منتج Wasmer: بدون منهجية ومواد منفصلة، ​​فإن إعادة نشر هذا الرقم من شأنه أن يعيد إنتاج المشكلة التي يوثقها.
هل أصدرت Aurabase رقم بداية باردة لوظائف Edge الخاصة بها؟+
لا، تقوم Aurabase بتشغيل الإصدار 43 من Wasmtime (ميزات غير متزامنة ورفع الرافعة) باعتبارها تبعية إنتاج في وظائف الهالة، وهي حقيقة تم التحقق منها مباشرة في Cargo.toml الخاص بالخدمة. ولكن لا يوجد حاليًا معيار بداية باردة يتبع بروتوكولًا قابلاً للتكرار ومؤرخًا في المستودع لوقت التشغيل هذا.
هل يبدأ WebAssembly بشكل أسرع من الحاوية؟+
من الناحية المعمارية، تحتوي وحدة WebAssembly على سطح بدء تشغيل أصغر من الحاوية (لا يوجد نواة ضيف، ولا يوجد نظام ملفات كامل لتركيبه)، مما يجعل البداية الباردة السريعة معقولة. لكن الفارق الفعلي يعتمد بقوة على السيناريو الذي تم اختباره. مقالتنا المخصصة لمقارنة WASM مقابل الحاويات تستكشف هذه النقطة بحالات ملموسة.

تم الاستشهاد بالمصادر الخارجية: وثائق المنتج العام Wasmer (Instaboot)، وثائق المشروع العام Wasmtime (Bytecode Alliance)، التي تمت استشارتها أثناء التحضير لهذه المقالة، دون التحقق المزدوج المستقل من أرقام الأداء التي تعرضها.

هل أنت جاهز للنشر؟

الواجهة الخلفية الخاصة بك في خمس دقائق.

لا حاجة لبطاقة ائتمان · 500 ميجابايت مجانًا · 50000 MAU