आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं।
रिएक्टिव नेटिव 0.70 बाहर है, और हर्मीस इस अपडेट के साथ नया डिफ़ॉल्ट जावास्क्रिप्ट इंजन शिपिंग है। यहां हर्मीस से क्या उम्मीद की जाए और कुछ विशेषताएं हैं जो आपके रिएक्टिव नेटिव एप्लिकेशन के प्रदर्शन को प्रभावित करेंगी।
हेमीज़ क्या है?
हर्म्स एक ओपन-सोर्स जावास्क्रिप्ट इंजन है जो आईओएस और एंड्रॉइड के दौरान प्रदर्शन को अनुकूलित करता है एप्लिकेशन जावास्क्रिप्ट कोड को कुशल बाइटकोड में पूर्व-संकलित करके और एप्लिकेशन को कम करके लॉन्च करता है स्मृति प्रयोग।
हेमीज़ का समर्थन करने के लिए पुराने रिएक्टिव नेटिव संस्करणों को अपडेट करना
0.70 पर चलने वाले रिएक्टिव नेटिव एप्लिकेशन में डिफ़ॉल्ट रूप से हेमीज़ सक्षम होगा। पुराने रिएक्ट नेटिव अनुप्रयोगों के लिए, एक हर्मीस एंड्रॉइड बिल्ड के लिए संस्करण 0.60.4 और iOS के लिए संस्करण 0.64.0 से शुरू होने वाले प्रत्येक रिएक्ट नेटिव संस्करण के साथ जहाजों का निर्माण करता है। मिलान करने वाले संस्करण आपके रिएक्टिव नेटिव एप्लिकेशन में एक निर्भरता बेमेल के जोखिम को समाप्त करते हैं।
रिएक्ट नेटिव के इन पुराने संस्करणों में हेमीज़ को सक्षम करने के लिए, आपको अपने Android और iOS दोनों अनुप्रयोगों में कुछ कॉन्फ़िगरेशन जोड़ने की आवश्यकता होगी।
Android पर, अपना संपादित करें android/ऐप/build.gradle फ़ाइल:
project.ext.react = [
प्रविष्टिफ़ाइल: "index.js",
सक्षम हेमीज़: सत्य// साफ करें और बदलते समय पुनर्निर्माण करें
]
आईओएस पर, आप अपने में निम्नलिखित बदलाव करते हैं आईओएस/पोडफाइल:
use_react_native!(
: पथ => कॉन्फिग [: रिएक्शन नेटिवपाथ],
:hermes_enabled => सत्य
)
सेटिंग्स को कॉन्फ़िगर करने के बाद आईओएस को आपको हेमीज़ पॉड्स स्थापित करने की आवश्यकता होती है।
पॉड्स को स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:
सीडी आईओएस && फली स्थापित करें
एक्सपो के साथ हेमीज़ को सक्षम करना
आप एक्सपो का उपयोग करके निर्मित या चलाए जाने वाले रिएक्टिव नेटिव एप्लिकेशन के लिए हेमीज़ इंजन का भी उपयोग कर सकते हैं। एक्सपो लाइब्रेरी Android पर SDK संस्करण 42 और iOS पर SDK संस्करण 43 से वर्तमान संस्करण 0.70 तक हेमीज़ का समर्थन करती है। यह नोट करना महत्वपूर्ण है कि स्टैंडअलोन एप्लिकेशन हर्मीस को तब तक नहीं चला सकते जब तक कि एक्सपो एप्लिकेशन सर्विसेज बिल्ड का उपयोग करके नहीं बनाया गया हो।
प्रतिक्रियाशील मूल एप्लिकेशन में हेमीज़ को सक्षम करने के लिए, अपने app.json फ़ाइल:
{
"एक्सपो": {
"jsEngine": "हेमीज़"
}
}
अब एक्सपो एप्लिकेशन सर्विसेज के साथ निर्मित आपके एप्लिकेशन में इसके जावास्क्रिप्ट इंजन के रूप में हेमीज़ सक्षम होगा।
प्रतिक्रियाशील मूल ऐप्स के लिए हेमीज़ प्रदर्शन अनुकूलन
अधिकांश जावास्क्रिप्ट इंजन JIT (जस्ट इन टाइम) संकलन प्रणाली का उपयोग करके सभी जावास्क्रिप्ट स्रोत कोड को पार्स करते हैं। जेआईटी सिस्टम निष्पादन को धीमा कर देता है क्योंकि आपके डिवाइस को संपूर्ण संकलन प्रक्रिया को पूरा करने की प्रतीक्षा करनी चाहिए। हर्मीस समय से पहले संकलन (एओटी) दृष्टिकोण का उपयोग करता है, अधिकांश हेवी-ड्यूटी जावास्क्रिप्ट इंजन कार्य को समय बनाने के लिए स्थानांतरित करता है।
हेमीज़ मुख्य रूप से एप्लिकेशन प्रदर्शन के तीन मैट्रिक्स को प्रभावित करता है: एप्लिकेशन TTI (टाइम टू इंटरएक्टिव), बाइनरी आकार और मेमोरी उपयोग।
इंटरएक्टिव का समय
TTI वह समय है जब किसी ऐप को स्क्रॉल करने या टाइप करने जैसे उपयोगकर्ता इंटरैक्शन को लोड करने और उसका समर्थन करने में समय लगता है। अन्य जावास्क्रिप्ट इंजनों की तुलना में हर्मीस प्रतिक्रियाशील मूल अनुप्रयोगों के लिए औसत टीटीआई में सुधार करता है।
TTI में यह कमी इसलिए है क्योंकि Hermes JIT कंपाइलर नहीं चलाता है।
बाइनरी आकार
बाइनरी आकार बंडल्ड रिएक्टिव नेटिव एप्लिकेशन का आकार है। Android एप्लिकेशन उपयोग करते हैं एपीके फ़ाइल स्वरूप, जबकि iOS ऐप्स एक प्रारूप का उपयोग करते हैं जिसे Apple IPA कहता है। Hermes का उपयोग करने से Android उपकरणों पर एप्लिकेशन का आकार महत्वपूर्ण रूप से कम हो जाता है।
स्मृति प्रयोग
अनुप्रयोगों में अनुकूलन के लिए मेमोरी उपयोग एक अन्य महत्वपूर्ण मीट्रिक है। यदि एप्लिकेशन बहुत अधिक मेमोरी का उपयोग करता है तो उसका उपयोगकर्ता अनुभव नकारात्मक रूप से प्रभावित होगा। हेर्मेस एक गारबेज कलेक्टर सिस्टम लागू करता है जो मांग पर मेमोरी उपयोग को नियंत्रित करता है, यह सुनिश्चित करता है कि एप्लिकेशन केवल चलने के दौरान आवश्यक मेमोरी स्पेस का उपयोग करता है।
हेमीज़ एक एमुलेटर, सिम्युलेटर, या एक्सपो का उपयोग करके भौतिक डिवाइस पर चल रहे रिएक्टिव नेटिव एप्लिकेशन को डिबग करने के लिए एक नए अनुभव के साथ आता है। हेमीज़ क्रोम देवटूल के इंस्पेक्टर प्रोटोकॉल का उपयोग करके प्रतिक्रियाशील मूल अनुप्रयोगों को डिबग करने का समर्थन करता है। आपको इसे पारंपरिक के साथ भ्रमित नहीं करना चाहिए ब्राउज़र के कंसोल का उपयोग करके जावास्क्रिप्ट डिबगिंग.
हेमीज़ एप्लिकेशन को डीबग करने के लिए क्रोम को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें।
- पर जाए क्रोम: // निरीक्षण आपके क्रोम ब्राउज़र के अंदर।
- पर क्लिक करें कॉन्फ़िगर बटन।
- ऑन-स्क्रीन मोडल के अंदर, अपने रिएक्टिव नेटिव एप्लिकेशन को चलाने वाले मेट्रो बंडलर के लिए सर्वर एड्रेस इनपुट करें और क्लिक करें पूर्ण.
अब आप Hermes लक्ष्य निरीक्षण लिंक का उपयोग करके अपने रिएक्टिव नेटिव एप्लिकेशन को डीबग कर सकते हैं।
क्यों हर्मीस को केवल रिएक्टिव नेटिव के लिए अनुकूलित किया गया है
रिएक्टिव नेटिव जावास्क्रिप्ट इंजन के रूप में हेमीज़ का इष्टतम प्रदर्शन आंशिक रूप से इसके रनटाइम वातावरण के लिए है। रिएक्ट नेटिव में, आप एप्लिकेशन के वातावरण में सभी जावास्क्रिप्ट कोड को बंडल करते हैं। यह प्रणाली शिपिंग बाइटकोड को कुशल बनाती है।
विचार करने के लिए एक अन्य कारक जावास्क्रिप्ट संकलन के दौरान किए गए कार्य की मात्रा है। हेमीज़ आक्रामक बायटेकोड अनुकूलन से परहेज करते हुए मोबाइल एप्लिकेशन के प्रत्याशित लगातार उपयोगकर्ता इंटरैक्शन का प्रबंधन करता है। एक जेआईटी कंपाइलर जावास्क्रिप्ट इंजन इस तरह कार्य नहीं करेगा।