7.1* योग्य कचरा गोळा करणारा कसा निवडायचा

तुमच्या अॅप्लिकेशनला कठोर विलंब आवश्यकता नसल्यास, तुम्ही फक्त अॅप्लिकेशन चालवा आणि JVM ला योग्य कलेक्टर निवडू द्या.

बहुतेक प्रकरणांमध्ये, डीफॉल्ट सेटिंग्ज चांगले कार्य करतात. आवश्यक असल्यास, कार्यप्रदर्शन सुधारण्यासाठी आपण ढीग आकार समायोजित करू शकता. कार्यप्रदर्शन अद्याप अपेक्षेप्रमाणे नसल्यास, आपल्या अनुप्रयोगाच्या आवश्यकतांनुसार कलेक्टरमध्ये सुधारणा करण्याचा प्रयत्न करा.

  • अनुक्रमिक . ऍप्लिकेशनमध्ये लहान डेटा सेट असल्यास (सुमारे 100 MB पर्यंत) आणि/किंवा तो कोणत्याही विलंब आवश्यकतांशिवाय एकाच प्रोसेसरवर चालेल.
  • समांतर . अग्रक्रम हे ऍप्लिकेशन पीक परफॉर्मन्स असल्यास आणि कोणतीही विलंब आवश्यकता नसल्यास (किंवा एक सेकंद किंवा अधिक विराम स्वीकार्य आहेत).
  • CMS/G1 . एकूण थ्रूपुटपेक्षा प्रतिसाद वेळ अधिक महत्त्वाचा असल्यास, आणि कचरा संकलन विराम एका सेकंदापेक्षा कमी असावा.
  • ZGC _ प्रतिसाद वेळ उच्च प्राधान्य असल्यास आणि/किंवा खूप मोठा ढीग गुंतलेला असेल.

7.2* कचरा संकलनासाठी शिफारसी

मॅन्युअल ट्रिगर टाळा

कचरा गोळा करण्याच्या मूलभूत यंत्रणेच्या व्यतिरिक्त, जावामधील या प्रक्रियेबद्दलचा एक महत्त्वाचा मुद्दा म्हणजे ती नॉन-डिटरमिनिस्टिक आहे. म्हणजेच रन टाइममध्ये नेमके कधी घडेल हे सांगता येत नाही.

System.gc() किंवा Runtime.gc() पद्धती वापरून, तुम्ही कचरा वेचक सुरू करण्यासाठी तुमच्या कोडमध्ये एक इशारा समाविष्ट करू शकता, परंतु हे प्रत्यक्षात चालेल याची हमी देत ​​नाही.

विश्लेषण साधने वापरा

तुमचा ॲप्लिकेशन चालवण्यासाठी तुमच्याकडे पुरेशी मेमरी नसल्यास, तुम्हाला मंदगती, लांब कचरा गोळा करण्याची वेळ, "वर्ल्ड स्टॉप" इव्हेंट्स आणि शेवटी मेमरी नसलेल्या त्रुटींचा अनुभव येईल. हे सूचित करू शकते की ढीग खूप लहान आहे, परंतु हे देखील सूचित करू शकते की अनुप्रयोगामध्ये मेमरी लीक आहे.

हीप वापर अनिश्चित काळासाठी वाढतो की नाही हे पाहण्यासाठी तुम्ही jstat किंवा Java Flight Recorder सारखे मॉनिटरिंग टूल वापरू शकता, जे कोडमध्ये बग दर्शवू शकते.

डीफॉल्ट सेटिंग्जला प्राधान्य द्या

तुमच्याकडे एक छोटा, स्वतंत्र Java अनुप्रयोग असल्यास, तुम्हाला कदाचित कचरा संकलन सेट करण्याची गरज भासणार नाही. डीफॉल्ट सेटिंग्ज तुम्हाला चांगली सेवा देतील.

सानुकूलित करण्यासाठी JVM ध्वज वापरा

Java मध्ये कचरा संकलन सेट करण्याचा सर्वोत्तम मार्ग म्हणजे JVM ध्वज सेट करणे. ध्वजांचा वापर कचरा गोळा करणारे (उदाहरणार्थ, सिरीयल, G1 आणि असे) सेट करण्यासाठी केला जाऊ शकतो, ढिगाचा प्रारंभिक आणि कमाल आकार, ढीग विभाजनांचा आकार (उदाहरणार्थ, तरुण पिढी, जुनी पिढी) आणि बरेच काही. अधिक

योग्य नळ निवडा

प्रारंभिक सेटिंग्जच्या दृष्टीने एक चांगली मार्गदर्शक तत्त्वे सानुकूल अनुप्रयोगाचे स्वरूप आहे. उदाहरणार्थ, समवर्ती कचरा गोळा करणारा कार्यक्षम आहे, परंतु अनेकदा "वर्ल्ड स्टॉप" इव्हेंट्स वाढवतो, ज्यामुळे दीर्घ विराम स्वीकार्य असलेल्या अंतर्गत प्रक्रियेसाठी अधिक योग्य बनतो.

त्याच वेळी, CMS कचरा संग्राहक विलंब कमी करण्यासाठी डिझाइन केलेले आहे, जे वेब अनुप्रयोगांसाठी आदर्श बनवते जेथे प्रतिसाद महत्त्वाचा आहे.