नमस्ते ?
आप जावा प्रदर्शन अनुकूलन तकनीकों पर पूरी पोस्ट पा सकते हैं
आपके प्रोफ़ाइल की सफलता के लिए आपके कोड प्रदर्शन को अनुकूलित करना महत्वपूर्ण है। क्या आप जानते हैं कि अकामाई के शोध में पाया गया कि यदि किसी पेज को लोड होने में 3 सेकंड से अधिक समय लगता है तो 57% ऑनलाइन उपभोक्ता वेबसाइट छोड़ देते हैं? इस पोस्ट में, आप सीखेंगे कि अपने जावा कोड को कैसे अनुकूलित करें और अपने कोड के प्रदर्शन को बेहतर बनाएं।
OutOfMemoryError को और कुछ न कहें: नया मूल थ्रेड बनाने में असमर्थ त्रुटि।
जावा 19 में पेश किए गए जावा वर्चुअल थ्रेड्स, आपके प्रोजेक्ट के प्रदर्शन में उल्लेखनीय रूप से सुधार कर सकते हैं।
जावा के पिछले रिलीज में, केवल 1 प्रकार का थ्रेड (क्लासिक थ्रेड) था, जब एक क्लासिक थ्रेड बनाया जाता है तो एक ओएस थ्रेड आवंटित किया जाता है और थ्रेड की संख्या ओएस थ्रेड तक सीमित होती है।
जेडीके 19 से शुरू करके, आप वर्चुअल थ्रेड बना सकते हैं जो ओएस थ्रेड की तुलना में बहुत हल्के हैं और आप एक एप्लिकेशन में हजारों वर्चुअल थ्रेड बना और चला सकते हैं।
स्प्रिंग बूट एप्लिकेशन में वर्चुअल थ्रेड्स को सक्षम करने के लिए अपने एप्लिकेशन.प्रॉपर्टीज में निम्नलिखित कोड जोड़ें।
spring.threads.virtual.enabled=true
ऐसे डेटा लाने से कई प्रदर्शन समस्याएं उत्पन्न होती हैं जिनकी आपको आवश्यकता नहीं है।
जरूरत पड़ने पर ही वस्तुओं को लोड करना सबसे अच्छा अभ्यास है।
उदाहरण के लिए, आप हाइबरनेट में FetchLazy का उपयोग कर सकते हैं लेकिन हमेशा ध्यान रखें कि उपयुक्त फ़ेच रणनीति उस विशिष्ट उपयोग के मामले पर निर्भर करती है जिसके साथ आप काम कर रहे हैं।
fetch = FetchType.LAZY
अक्सर एक्सेस किए गए डेटा को कैशिंग करके डिस्क एक्सेस को कम करें। उचित कैशिंग तकनीकों का उपयोग करके आप विलंबता को कम कर सकते हैं, नेटवर्क की भीड़ से बच सकते हैं और सामग्री उपलब्धता में सुधार कर सकते हैं।
स्प्रिंग फ्रेमवर्क विभिन्न कैश प्रदाताओं के लिए समर्थन प्रदान करता है, जिसमें Redis, Caffeie, Cache2k आदि शामिल हैं, लेकिन इन्हीं तक सीमित नहीं हैं...
जेपीए में एक प्रमुख पीढ़ी की रणनीति चुनते समय, वह चुनना महत्वपूर्ण है जो आपके द्वारा उपयोग किए जा रहे डेटाबेस के लिए सबसे उपयुक्त हो।
जनरेशन प्रकार.टेबल
इसके प्रदर्शन ओवरहेड के लिए जेनरेशन टाइप.टेबल का उपयोग करने से बचें। हर बार प्राथमिक कुंजी की आवश्यकता होने पर अनुक्रम तालिका पर चयन और अद्यतन के साथ एक LOCK कथन निष्पादित किया जाता है।
पीढ़ी प्रकार.पहचान
GenerationType.IDENTITY MySQL के लिए सबसे उपयुक्त है क्योंकि MySQL ऑटो-इंक्रीमेंट फ़ील्ड का उपयोग करता है और जेनरेशनटाइप.IDENTITY इसके साथ अच्छी तरह से काम करता है।
जनरेशन प्रकार.अनुक्रम
GenerationType.SEQUENCE का उपयोग आमतौर पर PostgreSQL और Oracle के साथ किया जाता है। दोनों डेटाबेस अनुक्रमों का समर्थन करते हैं, जो डेटाबेस ऑब्जेक्ट हैं जो अद्वितीय संख्याओं का अनुक्रम उत्पन्न करते हैं।
हाइबरनेट की क्वेरी प्लान कैश एक प्रमुख विशेषता है जो आपके एप्लिकेशन के प्रदर्शन को बेहतर बना सकती है।
जब हाइबरनेट एक JPQL क्वेरी निष्पादित करता है, तो संबंधित SQL क्वेरी उत्पन्न करने की आवश्यकता होती है। इस प्रक्रिया में क्वेरी को एक सार सिंटैक्स ट्री में पार्स करना, ट्री को SQL क्वेरी में अनुवाद करना और अंत में परिणाम को जावा ऑब्जेक्ट पर मैप करना शामिल है।
एक बार यह प्रक्रिया पूरी हो जाने पर, हाइबरनेट प्रक्रिया को कैश कर देता है ताकि उसे उसी क्वेरी के लिए इन चरणों को दोबारा करने की आवश्यकता न हो।
क्वेरी प्लान कैश को सक्षम और कॉन्फ़िगर करने के लिए निम्नलिखित कोड का उपयोग करें:
hibernet.query.plan_cache_max_size=2048 # कैश में क्वेरी योजनाओं की अधिकतम संख्या
hibernet.query.plan_parameter_metadata_max_size=128 # पैरामीटर मेटाडेटा के साथ क्वेरी योजनाओं का अधिकतम आकार
तेज और प्रतिक्रियाशील एप्लिकेशन प्रदान करने के लिए जावा कोड प्रदर्शन को अनुकूलित करना आवश्यक है।
वर्चुअल थ्रेड्स जैसी आधुनिक सुविधाओं का लाभ उठाकर, आलसी लोडिंग को लागू करके, कुशल कैशिंग रणनीतियों का उपयोग करके और अपने डेटाबेस संचालन को अनुकूलित करके, आप अपने एप्लिकेशन के प्रदर्शन में उल्लेखनीय सुधार कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3