Dawny33 की प्रतिक्रिया अच्छी है, लेकिन मैं विकास प्रक्रिया में पहले शुरू करूंगा।
यह सुनिश्चित करने के लिए कि आप अपने कार्यों के अनुसार व्यवहार करते हैं, अपने क्लाउड वातावरण पर नज़र रखें (अपने "उत्पादन" कार्यों सहित, जो एक अलग डेटा सेट पर काम कर सकते हैं) महत्वपूर्ण है, क्योंकि यह उन चीजों को प्रकट कर सकता है जो स्थानीय रूप से या साथ में असंभव हैं एक परीक्षण डेटा-सेट।
बहरहाल, मैं कहूंगा कि यह प्रदर्शन परीक्षण जो आप एक अनुकूलन उद्देश्य में करते हैं, सीधे डेवलपर की मशीन से शुरू होना चाहिए। या, कम से कम, कुछ स्थानीय वातावरण से बादल को धक्का देने से पहले।
मेरे ऐसा कहने का कारण यह है कि जब एडब्ल्यूएस लैंबडास कई बिंदुओं पर अद्भुत है, तो इस तथ्य पर कि आपके पास सर्वर पर पूर्ण नियंत्रण नहीं है, आपके इंस्ट्रूमेंटेशन क्षमताओं को सीमित कर देगा। मैं यह नहीं कह रहा हूं कि सर्वर रहित होने पर इंस्ट्रूमेंटेशन असंभव है, लेकिन यह पता लगाने की कोशिश करें कि आपके पास कितने सीपीयू बाधित हैं (और आपके कोड के कारण कितने हैं ) सिर्फ मनोरंजन के लिए;)
तो मैं जो सलाह देता हूं, और यह वास्तव में सर्वर रहित तक सीमित नहीं है, प्रोफाइलिंग को जल्दी शुरू करना है। NodeJS प्रोफाइलिंग को कई अलग-अलग उपकरणों के साथ बनाया जा सकता है, NewRelic, dynatrace और AppDynamic कुछ बड़े खिलाड़ी हैं। छोटे खिलाड़ी भी हैं, उनमें से कुछ बस एनपीएम पैकेज स्थापित करने के लिए हैं (जैसे कि नोडलेदर)। बिना किसी अतिरिक्त टूल के कुछ NodeJS करना भी संभव है, क्योंकि V8 इंजन में एक प्रोफाइलर बनाया गया है। NodeJS का यह डॉक्यूमेंटेशन आपको शुरू कर देगा।
आप जो भी टूल चुनते हैं, आप इसे स्थानीय रूप से इंस्टॉल करना चाहते हैं और प्रोफाइलिंग डेटा एकत्र करते हैं। इसमें एक एजेंट को शामिल करना या आपके पैकेज में एक पैकेज शामिल हो सकता है। आपके उपकरण के निर्देश आपको बताएंगे कि इसे कैसे स्थापित किया जाए। एक अच्छा प्रोफाइलर आपको बताएगा कि आप कितनी मेमोरी और सीपीयू का उपयोग करते हैं। बेहतर उपकरण आपको इस बात की जानकारी देंगे कि कितने रिमोट कॉल किए गए, उन्होंने कितने समय तक काम किया।
प्रोफाइलिंग डेटा का उपयोग करें जो उपकरण आपको अड़चनों की पहचान करने और उन्हें संबोधित करने के लिए देता है। आप कितना प्रोफाइल बना सकते हैं इसकी कोई सीमा नहीं है। कुछ लोग (पागल?) अपने सबसे महत्वपूर्ण कार्य के सिस्टम कॉल को देखेंगे। आपको उस तरह का काम करना पड़ सकता है यदि आप अपने फ़ंक्शन के नैनोसेकंडों को शेव करना चाहते हैं (लेकिन तब, शायद एडब्ल्यूएस लैम्ब्डा शुरू करने के लिए सबसे अच्छा विकल्प नहीं है)।
यह इस बिंदु पर भी ध्यान देने योग्य है कि मैंने एडब्ल्यूएस लैंबडा के लिए कुछ भी उल्लेख नहीं किया है। ऐसा इसलिए है क्योंकि आपकी अनुकूलन क्षमता संभवतः AWS लैम्ब्डा विशिष्ट नहीं होगी (सर्वर रहित होने के बाद, आपको सर्वर / पर्यावरण के बारे में चिंतित नहीं होना चाहिए)।
सुनिश्चित करें कि न केवल आपका कोड काम करता है, बल्कि यह उस तरीके से काम करता है जिससे आप इसकी अपेक्षा करते हैं। अनुकूलन से अधिक न करें, लेकिन CPU और मेमोरी उपयोग पर एक महत्वपूर्ण नज़र रखें। जब आप इसे सॉर्ट करते हैं तो 2MB सरणी वास्तव में 10MB हो जाना चाहिए? शायद ऩही।
तब आप Dawny33, या कुछ अन्य टूल द्वारा उल्लिखित टूल का उपयोग करने में सक्षम होंगे, यह पुष्टि करने के लिए कि लैम्ब्डा में तैनात होने पर आपके कार्य समान रूप से प्रदर्शन करते हैं। हालाँकि आपके कार्य में पहले से ही बहुत उच्च स्तर का विश्वास होगा और उन्हें केवल यह सत्यापित करने की आवश्यकता होगी कि वे ठीक से व्यवहार करते हैं, न कि पूरी तरह से उनका प्रोफाइल।