चेतावनी: पोस्ट की गई किसी भी और सभी सामग्री का उद्देश्य मेरे ज्ञान को याद दिलाना या बनाए रखना है और मुझे उम्मीद है कि यह सीखने की आपकी यात्रा में भी आपकी मदद कर सकता है।
यह पोस्ट लाइव है और समय-समय पर अपडेट की जाएगी।
यदि आपको कोई खामी दिखती है या ध्यान आता है कि कुछ कमी है, तो मुझे सुधारने में मदद करें :)
क्या आपने कभी सोचा है कि हमारे अनुप्रयोगों के प्रदर्शन के संबंध में हमसे तेजी से मांग की जा रही है?
हर दिन हमें उन्हें तेज़ बनाने की चुनौती दी जाती है और इसके साथ ही, हमें उन समाधानों और आर्किटेक्चर का मूल्यांकन करने के लिए प्रेरित किया जाता है जो हमें परिणाम प्राप्त करने में सक्षम बनाते हैं।
तो विचार एक छोटी पोस्ट लाने का है, जिसमें एक नए विकास के बारे में बताया जाए जो हमें AWS लैम्ब्डा में सर्वर रहित अनुप्रयोगों में प्रदर्शन में काफी वृद्धि करने में मदद कर सकता है। यह समाधान है एलएलआरटी जावास्क्रिप्ट।
एडब्ल्यूएस टीम द्वारा एक नया जावास्क्रिप्ट रनटाइम विकसित किया जा रहा है।
यह वर्तमान में प्रायोगिक है और 2024 के अंत तक एक स्थिर संस्करण जारी करने का प्रयास किया जा रहा है।
AWS द्वारा प्रस्तुत विवरण देखें:
एलएलआरटी (लो लेटेंसी रनटाइम) एक हल्का जावास्क्रिप्ट रनटाइम है जिसे तेज और कुशल सर्वर रहित अनुप्रयोगों की बढ़ती मांग को पूरा करने के लिए डिज़ाइन किया गया है। एडब्ल्यूएस लैम्ब्डा पर चलने वाले अन्य जावास्क्रिप्ट रनटाइम की तुलना में एलएलआरटी 10 गुना से अधिक तेज स्टार्टअप और कुल मिलाकर 2 गुना कम लागत की पेशकश करता है।
यह रस्ट में बनाया गया है, जो क्विकजेएस को जावास्क्रिप्ट इंजन के रूप में उपयोग करता है, कुशल मेमोरी उपयोग और तेज़ स्टार्टअप सुनिश्चित करता है।
देखें कि उनका लक्ष्य अन्य जेएस रनटाइम की तुलना में 10 गुना अधिक तेजी से कुछ वितरित करना है।
यह सारा निर्माण रस्ट का उपयोग करके किया जाता है, जो एक उच्च-प्रदर्शन वाली भाषा है, और क्विकजेएस, जो एक हल्का, उच्च-प्रदर्शन वाला जावास्क्रिप्ट इंजन है, जिसे छोटा, कुशल और नवीनतम ईसीएमएस्क्रिप्ट विनिर्देश के साथ संगत बनाया गया है क्लास, एसिंक/प्रतीक्षा और मॉड्यूल जैसी आधुनिक सुविधाएँ। इसके अलावा, एक ऐसे दृष्टिकोण का उपयोग किया जाता है जो JIT का उपयोग नहीं करता है। इसलिए, जस्ट-इन-टाइम संकलन के लिए संसाधनों को आवंटित करने के बजाय, यह इन संसाधनों को कोड के भीतर ही कार्यों को निष्पादित करने के लिए संरक्षित करता है।
लेकिन चिंता मत करो, सब कुछ अच्छा नहीं है, यह समझौता है (भयानक मजाक, मुझे पता है हंसी)।
इसलिए, एलएलआरटी जेएस को अपनाने के बारे में सोचने से पहले विचार करने के लिए कुछ महत्वपूर्ण बिंदु हैं। देखें AWS क्या कहता है:
ऐसे कई मामले हैं जहां एलएलआरटी जेआईटी-संचालित रनटाइम की तुलना में उल्लेखनीय प्रदर्शन कमियां दिखाता है, जैसे बड़े डेटा प्रोसेसिंग, मोंटे कार्लो सिमुलेशन या सैकड़ों हजारों या लाखों पुनरावृत्तियों के साथ कार्य करना। डेटा परिवर्तन, वास्तविक समय प्रसंस्करण, एडब्ल्यूएस सेवा एकीकरण, प्राधिकरण, सत्यापन आदि जैसे कार्यों के लिए समर्पित छोटे सर्वर रहित कार्यों पर लागू होने पर एलएलआरटी सबसे प्रभावी होता है। इसे हर चीज़ के व्यापक प्रतिस्थापन के रूप में काम करने के बजाय मौजूदा घटकों को पूरक करने के लिए डिज़ाइन किया गया है। विशेष रूप से, यह देखते हुए कि इसके समर्थित एपीआई Node.js विनिर्देश पर आधारित हैं, वैकल्पिक समाधानों पर वापस जाने के लिए न्यूनतम कोड समायोजन की आवश्यकता होती है।
इसके अलावा, विचार यह है कि एलएलआरटी जेएस नोड.जेएस का प्रतिस्थापन नहीं है और न ही यह कभी होगा।
देखना:
एलएलआरटी केवल नोड.जेएस एपीआई के एक अंश का समर्थन करता है, यह नोड.जेएस के प्रतिस्थापन में कोई गिरावट नहीं है, न ही यह कभी होगा। नीचे आंशिक रूप से समर्थित एपीआई और मॉड्यूल का उच्च स्तरीय अवलोकन दिया गया है। अधिक जानकारी के लिए एपीआई दस्तावेज़ देखें।
एडब्ल्यूएस द्वारा उल्लिखित प्रयोज्यता को ध्यान में रखते हुए, हम एलएलआरटी का नोडजेएस के साथ मूल्यांकन और तुलना करने के लिए दो परीक्षण करेंगे। इनमें से एक परीक्षण अभाज्य संख्याओं की गणना के लिए होगा और दूसरा एक साधारण एपीआई कॉल के लिए होगा।
अभाज्य संख्याओं की गणना का उपयोग क्यों करें?
इसका उत्तर यह है कि अभाज्य संख्याओं की पहचान करने के लिए आवश्यक उच्च प्रसंस्करण के परिणामस्वरूप अभाज्य संख्याओं को सत्यापित करने के लिए कई गणितीय संचालन (विभाजन) करने की आवश्यकता होती है, अभाज्य संख्याओं का अप्रत्याशित वितरण और संख्याओं के आकार के साथ बढ़ती जटिलता होती है। ये कारक मिलकर मौलिकता की जांच और अभाज्य संख्याओं की खोज को कम्प्यूटेशनल रूप से गहन कार्य बनाते हैं, खासकर बड़े पैमाने पर।
फिर हाथ...
नोडज के साथ पहला लैम्ब्डा फ़ंक्शन बनाएं:
अब, आइए एलएलआरटी जेएस के साथ फ़ंक्शन बनाएं। मैंने परत विकल्प का उपयोग करना चुना।
परत बनाएं:
फिर फ़ंक्शन बनाएं:
और इस परत को बनाए गए एलएलआरटी जेएस फ़ंक्शन में जोड़ें:
अभाज्य संख्या परीक्षण के लिए, हम निम्नलिखित कोड का उपयोग करेंगे:
let isLambdaWarm = false export async function handler(event) { const limit = event.limit || 100000; // Defina um limite alto para aumentar a complexidade const primes = []; const startTime = Date.now() const isPrime = (num) => { if (numऔर एपीआई परीक्षण के लिए, हम नीचे दिए गए कोड का उपयोग करेंगे:
let isLambdaWarm = false export async function handler(event) { const url = event.url || 'https://jsonplaceholder.typicode.com/posts/1' console.log('starting fetch url', { url }) const startTime = Date.now() let resp; try { const response = await fetch(url) const data = await response.json() const endTime = Date.now() - startTime resp = { statusCode: 200, body: JSON.stringify({ executionTime: `${endTime} ms`, isLambdaWarm: `${isLambdaWarm}` }), } } catch (error) { resp = { statusCode: 500, body: JSON.stringify({ message: 'Error fetching data', error: error.message, }), } } if (!isLambdaWarm) { isLambdaWarm = true } return resp; };परीक्षा के परिणाम
यहाँ उद्देश्य अधिक शैक्षिक है, इसलिए प्रत्येक परीक्षण के लिए हमारे नमूने में 15 वार्म स्टार्ट डेटा और 1 कोल्ड स्टार्ट डेटा शामिल हैं।
मेमोरी खपत
एलएलआरटी जेएस - दोनों परीक्षणों के लिए, समान मात्रा में मेमोरी की खपत हुई: 23एमबी।
नोडजेएस - प्राइम नंबर टेस्ट के लिए, नोडज ने 69एमबी की खपत शुरू की और 106एमबी तक पहुंच गया।
एपीआई परीक्षण के लिए, न्यूनतम 86 एमबी और अधिकतम 106 एमबी थी।निष्पादन समय
आउटलेर्स को हटाने के बाद, यह परिणाम था:अंतिम रिपोर्ट
मेमोरी खपत - मेमोरी खपत के लिए यह देखा गया कि एलएलआरटी ने नोडज की तुलना में उपलब्ध संसाधन का बेहतर उपयोग किया।
प्रदर्शन - हमने देखा कि उच्च प्रसंस्करण परिदृश्य में, नोड ने कोल्ड स्टार्ट और वार्म स्टार्ट दोनों में एलएलआरटी की तुलना में काफी बेहतर प्रदर्शन बनाए रखा।
निचले प्रसंस्करण परिदृश्य के लिए, एलएलआरटी को एक निश्चित लाभ था, खासकर ठंडी शुरुआत में।आइए अंतिम परिणामों की प्रतीक्षा करें और आशा करें कि हम और भी महत्वपूर्ण सुधार कर सकते हैं, लेकिन जेएस के लचीलेपन को देखना और यह देखना बहुत अच्छा है कि यह हमें कितना कुछ दे सकता है और अभी भी देना बाकी है।
मुझे आशा है कि आपने इसका आनंद लिया और आपको किसी चीज़ के बारे में अपनी समझ को बेहतर बनाने में मदद मिली या नए ज्ञान के रास्ते भी खुले। मैं आलोचना और सुझावों के लिए आप पर भरोसा करता हूं ताकि हम सामग्री में सुधार कर सकें और समुदाय के लिए इसे हमेशा अद्यतन रख सकें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3