मी माझ्या काही विकसनशील मित्रांना असे म्हणताना ऐकले आहे:कचरा संकलन स्वयंचलित आहे. त्यामुळे मला त्याबद्दल काळजी करण्याची गरज नाही.पहिला भाग खरा आहे, म्हणजे सर्व आधुनिक प्लॅटफॉर्मवर “कचरा संकलन स्वयंचलित आहे” – जावा, .नेट, गोलंग, पायथन … पण दुसरा भाग, म्हणजे “मला याची काळजी करण्याची गरज नाही.” – बरोबर असू शकत नाही. ते वादग्रस्त, संशयास्पद आहे. कचरा गोळा करण्याची क्षमता दाखवणे हे माझे काम आहे.

1. अप्रिय ग्राहक अनुभव

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

2. लाखो डॉलर्स वाया गेले

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

3. कमी धोका, उच्च परिणाम कार्यक्षमता सुधारणा

आपल्या कचरा संकलनाचे कार्यप्रदर्शन ऑप्टिमाइझ करून, आपण केवळ आपला कचरा गोळा करण्याची वेळच सुधारत नाही, तर आपला एकूण अनुप्रयोग प्रतिसाद वेळ देखील सुधारतो. आम्ही अलीकडेच जगातील सर्वात मोठ्या ऑटोमोबाईल कंपन्यांच्या कचरा संकलनाचे नियमन करण्यास मदत केली. फक्त कचरा सेटिंग्ज बदलून कोडची एक ओळ बदलल्याशिवाय, आम्ही त्यांच्या एकूण अनुप्रयोग प्रतिसाद वेळेत लक्षणीय सुधारणा केली आहे. खालील सारणी आम्ही केलेल्या प्रत्येक कचरा संकलन पॅरामीटरमध्ये मिळवलेल्या एकूण प्रतिसाद वेळ सुधारणेचा सारांश देते.

सरासरी प्रतिसाद वेळ (सेकंद) व्यवहार> 25 सेकंद (%)
आधाररेखा: 1.88: 0.7:
GC सेटिंग्ज # 2 ची पुनरावृत्ती करा 1.36: 0.12:
जीसी पॅरामीटर्सची पुनरावृत्ती # 3 1.7: 0.11:
GC सेटिंग्ज # 4 ची पुनरावृत्ती करा 1.48: 0.08:
जीसी सेटिंग्ज # 5 ची पुनरावृत्ती करा 2,045: 0.14:
GC सेटिंग्ज # 6 ची पुनरावृत्ती करा 1,087: 0.24:
जीसी पॅरामीटर्सची पुनरावृत्ती # 7 1.03: 0.14:
जीसी सेटिंग्ज # 8 ची पुनरावृत्ती करा 0.95: 0.31:

जेव्हा आम्ही जीसी ट्यूनिंग व्यायाम सुरू केला, तेव्हा या कार अॅपचा एकूण प्रतिसाद वेळ 1.88 सेकंद होता. आम्ही वेगवेगळ्या मापदंडांसह कचरा गोळा करण्याचे काम ऑप्टिमाइझ केल्यामुळे, # 8 ची पुनरावृत्ती केल्यामुळे, आम्ही एकूण प्रतिसाद वेळ 0.95 सेकंदात सुधारण्यास सक्षम होतो. ते आहे, 49.46% प्रतिसाद वेळ सुधारणे. त्याचप्रमाणे, 25 सेकंदांपेक्षा जास्त काळ चालणाऱ्या व्यवहारावरील व्याजदर 0.7% वरून 0.31% किंवा 55% सुधारणा घसरले. कोडची एकच ओळ न बदलता ही लक्षणीय सुधारणा आहे.

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

4. पूर्वानुमानित देखरेख

कचरा संकलन नोंदी महत्त्वपूर्ण भविष्यसूचक मायक्रोमीटर प्रकट करतात. हे निकष अनुप्रयोग उपलब्धता և कामगिरी वैशिष्ट्यांचा अंदाज लावण्यासाठी वापरले जाऊ शकतात. कचरा संकलनामध्ये सादर केलेल्या मायक्रोमीटरपैकी हे एक आहे.जीसी बँडविड्थ”(इतर मायक्रोमीटरवर अधिकसाठी, पहा: या लेखाला): जीसी बँडविड्थ म्हणजे काय? जर तुमच्या अर्जाची GC बँडविड्थ 98% असेल, तर याचा अर्थ असा की तुमचा अनुप्रयोग त्याच्या 98% वेळ ग्राहक क्रियाकलापांवर खर्च करतो आणि उर्वरित 2% GC क्रियाकलापांवर खर्च करतो. जेव्हा एखादा अनुप्रयोग मेमरी समस्येने ग्रस्त असतो, तेव्हा तो जीसी बँडविड्थच्या काही मिनिटांपूर्वी खराब होऊ लागतो. समस्यानिवारण साधने जसे की: वाय क्रॅश: उत्पादन वातावरणात येण्यापूर्वी मेमरी समस्यांचा अंदाज लावण्यासाठी जीसी बँडविड्थचे परीक्षण करते – अंदाज लावते.

5. क्षमता नियोजन

तुम्ही तुमच्या अर्जाच्या क्षमतेचे नियोजन करता, तुम्हाला तुमच्या अर्जाची मेमरी, प्रोसेसर, नेटवर्क և स्टोरेज साठी आवश्यकता समजून घेणे आवश्यक आहे. स्मृती मागणीचा अभ्यास करण्याचा एक उत्तम मार्ग म्हणजे कचरा गोळा करण्याच्या वर्तनाचे विश्लेषण करणे. कचरा गोळा करण्याच्या वर्तनाचे विश्लेषण करताना, आपण ऑब्जेक्ट निर्मितीचा सरासरी दर (उदाहरणार्थ, 150 MB / s), ऑब्जेक्टच्या पुनर्प्राप्तीचा सरासरी दर निर्धारित करण्यास सक्षम असाल. या प्रकारच्या मायक्रोमीटरचा वापर करून, आपण आपल्या अनुप्रयोगासाठी प्रभावी अनुप्रयोग क्षमतांची योजना करू शकता.

निष्कर्ष

मित्रांनो, या पोस्टमध्ये मी कचरा विश्लेषणाचे महत्त्व योग्य ठरवण्याचा प्रयत्न केला आहे. कचरा गोळा करण्याच्या अत्यंत सूक्ष्म निर्देशकांचा लाभ घेण्यासाठी तुम्हाला -तुमच्या टीमला शुभेच्छा.