تم طرح Deno 2.0 للتو وادعى أنه أسرع من Bun وNode.js وبنفس الطريقة التي يدعي Bun أنه أسرع. وقد أثار هذا اهتمامي، لذلك قررت أن أضع أداءهم تحت الاختبار وأرى كيف يمكن مقارنتهم في سيناريو العالم الحقيقي.
للحصول على مقارنة عادلة، أحتاج إلى اختيار إطار عمل متوافق مع جميع بيئات تشغيل JavaScript الثلاث (Node.js، وDeno، وBun). ولهذا السبب قررت استخدام Hono.js، الذي يتكامل بسلاسة مع العناصر الثلاثة جميعها.
نظام التشغيل: Ubuntu 24.04.1 LTS (WSL)
النظام: رايزن 5 5500U، ذاكرة وصول عشوائي 16 جيجابايت
Node.js: v22.9.0
دينو: v2.0.0
الكعكة: v1.1.30
أمر الاختبار:
bombardier -c 100 -d 30s http://localhost:3000
لقياس الأداء، استخدمت Bombardier، وهي أداة اختبار الحمل المستندة إلى Go والتي تعمل لمدة 30 ثانية مع 100 اتصال متزامن. تم تكرار كل اختبار ثلاث مرات لضمان الحصول على نتائج أكثر دقة، وتم أخذ متوسط عدد مرات التشغيل لكل بيئة.
لقد اخترت Hono.js لمرونته وتوافقه المتبادل. يتيح Hono.js التكامل السهل مع أوقات تشغيل JavaScript الثلاثة — Node.js وDeno وBun — مما يجعله إطارًا مثاليًا لهذا النوع من المعايير. إنه خفيف الوزن، وسريع، ويحتوي على واجهة برمجة تطبيقات بسيطة، مما يضمن تسليط الضوء على اختلافات الأداء بين أوقات التشغيل دون أي تكاليف إضافية.
إليك متوسط والحد الأقصى للطلبات في الثانية لكل وقت تشغيل:
(الطلب/الثانية)
الفائز: كعكة
فيما يلي وقت الاستجابة (بالملي ثانية لكل طلب) لكل وقت تشغيل كما هو موضح أدناه:
(مللي ثانية/الطلب)
الفائز: كعكة (المتوسط) ودينو (الحد الأقصى)
التحليل والوجبات الرئيسية
وبناء على النتائج ظهرت النقاط الرئيسية التالية:
Node.js: على الرغم من أن Node.js كان المعيار الصناعي لجافا سكريبت من جانب الخادم لسنوات، إلا أنه يُظهر أداءً أقل من حيث الطلبات في الثانية مقارنةً بكل من Deno وBun. كما أن متوسط زمن الوصول الخاص بها أعلى أيضًا، مما يشير إلى أنها قد تعاني أكثر في ظل الأحمال المتزامنة الثقيلة. ومع ذلك، لا يزال Node.js معتمدًا على نطاق واسع نظرًا لنظامه البيئي الواسع واستقراره في بيئات الإنتاج.
Deno 2.0: كان أداء Deno أفضل بكثير من Node.js، حيث قدم أكثر من ضعف الطلبات في الثانية مع الحفاظ على متوسط زمن وصول أقل بكثير. يشير هذا إلى أن Deno تم تحسينه بدرجة كبيرة للتعامل مع الاتصالات المتزامنة ويمكن أن يكون بديلاً قويًا للتطبيقات ذات الأداء الحيوي. يمنحه تصميمه الحديث وميزاته المضمنة مثل دعم TypeScript ميزة في المشاريع الأحدث.
Bun: تفوق Bun في الأداء على كل من Node.js وDeno من حيث الأداء الخام. لقد تعامل مع أكبر عدد من الطلبات في الثانية وحافظ على أقل متوسط زمن وصول. وهذا يجعل Bun خيارًا مقنعًا للمشاريع التي تكون فيها السرعة هي الأولوية القصوى. ومع ذلك، فهو لا يزال وقت تشغيل أحدث، كما أن نظامه البيئي ومجتمعه لم ينضجا بعد مثل نظام Node.js.
في هذا المعيار، قمت باختبار أداء Deno 2.0 وBun وNode.js باستخدام Hono.js كإطار عمل في جميع البيئات الثلاث. تظهر النتائج بوضوح أن كلا من Deno وBun يتفوقان على Node.js من حيث السرعة الأولية وزمن الوصول. يتألق Bun، على وجه الخصوص، في سيناريوهات عالية الأداء، بينما يوفر Deno حلاً متوازنًا مع التركيز على ميزات التطوير الحديثة.
على الرغم من أن Node.js قد لا يكون الخيار الأسرع، إلا أنه يظل خيارًا موثوقًا به، خاصة بالنسبة للمشاريع التي تعتمد على نظامها البيئي الناضج. من ناحية أخرى، إذا كنت تعمل على مشروع جديد وتحتاج إلى تحقيق أقصى قدر من الأداء، فإن كلاً من Deno وBun يقدمان بدائل مقنعة.
في النهاية، سيعتمد اختيار وقت التشغيل على الاحتياجات المحددة لمشروعك. في الوقت الحالي، أثبت Deno وBun أنهما المتنافسان الجديدان في سباق وقت تشغيل JavaScript، مع تقدم Bun بشكل ملحوظ في الأداء.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3