बन क्या है?

बन, नया जावास्क्रिप्ट/टाइपस्क्रिप्ट रनटाइम है। लेकिन इसकी कहानी क्या है? और आपको इसे क्यों देखना चाहिए? आइए जानते हैं!

2 मिनट पढ़ने के लिए
वेबडेव
बन
जावास्क्रिप्ट
टाइपस्क्रिप्ट
नोडजेएस

TLDR🥱!!!

  • हाँ, बन सचमुच शानदार है और यह एक आश्चर्यजनक डेव-एक्सपी भी थी 😳।
  • लेकिन अब तक नोडजीएस को बाहर न गिनें ⚠️।

बन को स्थापित करें 📦
इसके लिए बस डॉक्स की जाँच करें 😒, बन की वेबसाइट

बन में ओवन को डालना 🥖

तो मैं यहाँ बन v1.22.0 का उपयोग कर रहा हूँ और मैं इसे सभी पर WSL-2, यूबंटू 22 विंडोज 11 पर कर रहा हूँ।
और मैंने bun init के साथ एक नया बन परियोजना प्रारंभ किया (बस जैसे डॉक्स कहते हैं)

बन डिफ़ॉल्ट परियोजना को प्रारंभ कर रहा है

ठीक है, अब बस जल्दी से देखते हैं कि चीजें ठीक काम कर रही हैं :-
(और हम उसमें उस छोटे ‘न’ को भूलने नहीं जा रहे हैं 🫣)

bun का परीक्षण

और चीजें ठीक चल रही थीं, तो अब चलिए अच्छी चीज़ पर पहुंचते हैं।

बन की कहानी (बेंचमार्किंग) 📊

यह कोड जिसे मैंने इस्तेमाल किया👇🏻 और यह केवल बहुत से फिबोनाची उत्पन्न कर रहा है और उन्हें एक फ़ाइल में लिख रहा है।

const timeStart = new Date().getTime(); // टाइमर शुरू करें function fibRecursive(n: number): number { return n <= 1 ? n : fibRecursive(n - 1) + fibRecursive(n - 2); } function generateFibNumbers(count: number): number[] { const fibNumbers: number[] = []; for (let i = 0; i < count; i++) { fibNumbers.push(fibRecursive(i)); } return fibNumbers; } const fibs = generateFibNumbers(40); // फ़ाइल में लिखें (बन के लिए विशेष), नोड के लिए बस fs का उपयोग करें Bun.write("fibs.json", JSON.stringify(fibs, null, 2)); const timeEnd = new Date().getTime(); // टाइमर समाप्त const diff = timeEnd - timeStart; console.log(`में पूर्ण हुआ ${diff}ms`);

यहां ध्यान देने योग्य दो बातें हैं👇🏻

  • मुझे पता है कि यह कोई चमकीली बेंचमार्किंग कोड नहीं है और मैं यहां किसी चमकीली पुस्तकालय का उपयोग नहीं कर रहा हूँ 😒, लेकिन यह एक साधा परीक्षण है कि बन नोडजीएस के साथ कैसे तुलना करता है।
  • मैं बस इसे कह रहा हूँ कि यदि हम उन दोनों रनटाइम्स के लिए समान मशीन पर समान कोड को चलाएं, तो हम उनकी तुलना कर सकते हैं कि वे कैसे तुलना करते हैं।

वह अंक 📈

तो मैंने इसे बहुत बार बन और नोडजीएस के साथ चलाया और यहां क्या मिला:-

  • बन का औसत समय - (853 + 875 + … + 846)/8 = 868.25ms
  • नोड का औसत समय - (1376 + 1352 + … + 1370)/7 = 1360.57ms

तो बन लगभग 1.5 गुना तेज है नोडजीएस के मेरे मशीन पर 40 फिबोनाची नंबर्स उगाने और उन्हें एक JSON फ़ाइल में लिखने के लिए।

तो बन की कहानी? 🤔

तो वह अंक जो आप बन की वेबसाइट पर देख रहे हैं, जहां उन्होंने कहा है कि बन बस HTTP अनुरोधों को सर्विस करता है और बस संख्याओं और साधा फ़ाइल आईओ की तुलना नहीं कर रहा है, तो क्या हैं वह? ठीक है, वे झूठ नहीं बोल रहे हैं, लेकिन वे HTTP अनुरोधों की सेवा करने की बात कर रहे हैं और केवल संख्याओं को कुचलने और साधा फ़ाइल आईओ करने की बात नहीं है।

अगर आप अपने इलेक्ट्रॉन एप्लिकेशन को छोड़ने की सोच रहे हैं (जिसमें मुख्य धारा पर सभी फ़ाइल सिस्टम संबंधित चीजें नोडजीएस का उपयोग करता है) कुछ ऐसे कुछ जिसका समर्थन नोडजीएस की तुलना में अधूरा हो सकता है, तो आपको फिर से सोचने की आवश्यकता है।

नोड अभी ठीक है, लेकिन बन भविष्य में देखने के लायक ज़रूर है 👀।

उन अंकों का प्रमाण 👇🏻

बन बेंचमार्किंगनोडजीएस बेंचमार्किंग