இந்த பகுதியில் jvm கார்பேஜ்
கலக்சன் பற்றி காண இருக்கின்றோம்.
ஜாவா கார்பேஜ் கலக்சன் ஆனது அவ்வப்போது
இயங்கி எந்த ஆப்ஜெட்டுகள் உபயோகத்தில் இல்லையோ அந்த மெமரியை கிளீயர் செய்யும். இது
டெவலப்பரின் உற்பத்தி திறனை அதிகரிக்கின்றது, இவ்வாறு கிளியர் செய்யும் பொழுது ஆக்டிவ்
ஆப்ஜெக்டுகள் உபயோகிகும் மெமரியை அழித்து விடக் கூடாது.
இவ்வாறு கிளியர் செய்யப்படும்
மெமரியானது புதிய ஆப்ஜெக்டுகளுக்கு அலோகேட் செய்யப் படுகின்றது.
ஜாவா அப்ளிகேசனின் கமாண்ட் லைனில்
–Xmx என்று கொடுத்தால்(உதாரணமாக java –Xmx:2g MyApp.java) மெமரி ஆனது ஜாவா பயன்பாட்டிற்கு
ஒதுக்கீடு செய்யப்படுகின்றது. இது ஜாவா ஹீப்(java heap) எனப்படுகின்றது. இந்த மெமரி
தான் ஜாவா ஆப்ஜெக்ட்டுகளுக்கு அலோக்கேட் செய்யப்படுகின்றது. எல்லா ஆப்ஜெக்டுகளுக்கும்
மெமரியை நிறைக்கின்றன.
இப்பொழுது மெமரி நிறைந்து விட்டதால்
அதற்கடுத்து வரும் ஆப்ஜெக்டுகளுக்கு அலாக்கேட் செய்ய மெமரி இருக்காது. இப்பொழுது கார்பேஜ்
கலக்டர் இயங்குகின்றது. System.gc() ஸ்டேட்மெண்ட் கொண்டும் கார்பேஜ் கலக்டரை இயக்கலாம்,.
ஆனால் அப்பொழுது கார்பேஜ் கலக்டர் ரன் ஆகும் என்பதற்கு உத்திரவாதம் கிடையாது.
கார்பேஜ் கலக்டர் இயங்க ஆரம்பிக்கும்
பொழுது பாது காப்பான நிலை உள்ளதா எனச் சோதிக்கும். உதாரணமாக ஒரு ஆப்ஜெக்ட் அலோக்கேசன்
நடக்கும் பொழுது கார்பேஜ் கலக்டர் ரன் ஆகி விடக்கூடாது.
டெட் ஆப்ஜெக்டுகளின்ன் மெமரியை
உடனடியாக கிளியர் செய்ய தேவையில்லை. அடுத்தடுத்த ஆபரேசன்களில் சரி செய்து கொள்ளலாம்.
கார்பேஜ் கலக்டரின் இரண்டு கடமைகள்
1.
உபயோகமற்ற ஆப்ஜெக்டுகளின் மெமரியை கிளியர் செய்தல்
2.
அவ்வாறு கிளியர் செய்யும் பொழுது அப்ளிகேசனின்
பெர்ஃபார்மன்ஸை பாதிக்காமல் செயற்படுதல்.
இரண்டு
வகையான கார்பேஜ் கலக்சன் அனுகுமுறைகள்.
1.
ரெஃபெரன்ஸ் கவுண்டிங்க் கலக்டர்கள்
2.
ட்ரேசிங்க் கலக்டர்கள்.
ரெஃபெரென்ஸ்
கவுண்டிங்க் கலக்டர்கள்.
ஒவ்வொரு ஆப்ஜெக்டும் எத்தனை ரெஃபெரென்ஸ்
செய்யப்படுகின்றன என்று கவுண்ட் செய்யப்படும்.கவுண்ட் 0 ஆகும் பொழுது மெமரி கிளியர்
செய்யப்படும்.இதன் பாதிப்பு என்ன வென்றால் கவுண்டிங்க் துல்லிதமாக இல்லாதிருத்தல் .
இரண்டாவதாக சர்குலர் ரெஃபெரென்ஸ். இரு ஆப்ஜெக்டுகள் ஒன்றுக்கொன்று மற்றொன்றை ரெஃபெரென்ஸ்
செய்தல். இந்த நிலையில் மெமரி கிளியர் ஆகாது.
ட்ரேசிங்க் கலக்டர்
இது லைவ் ஆப்ஜெக்ட் என்ற இனிசியல்
செட்டை அடிப்படையாக கொண்டு ஒரு ஆப்ஜெக்ட் எந்தெந்த ரெஃபெரென்ஃஸை கொண்டிருக்கின்றன என்று
ட்ரேஸ் செய்யும். அவ்வாறு ட்ரேஸ் ஆகாத பொழுது அதன் மெமரியை கிளியர் செய்யும்.
இதில் சர்க்குலர் ரெஃபெரென்சும்
கிளியர் செய்யப்படும்.
ட்ரேசிங்க் கலக்டர் அல்காரிதம்கள்.
1.
காப்பியிங்க் கலக்டர் அல்கரிதம்
2.
மார்க் & ஸ்வீப் கார்பேஜ் கலக்சன் அல்காரிதம்.
காப்பியிங்க் கலக்டர் அல்காரிதம்கள்.
இதில் இரண்டு மெமரி அட்ரஸ்கள்
ஃப்ரம் ஸ்பேஸ், டூஸ்பேஸ் என்று இருக்கும்.
இதில் ஃப்ரம் ஸ்பேசிபிருந்து
ஒவ்வொன்றாக எடுத்து டூஸ்பேசில் காப்பி செய்யப்படும்.ஃப்ரம்ஸ்பேஸ் காலியான பிறகு மெமரி
ரிகிளைம் ஆகும். இப்பொழுது டூஸ்பேசில் இருந்து ஒவ்வொன்றாக எடுத்து ஃப்ரம் ஸ்பேசில்
ஃபில் ஆக ஆரம்பிக்கும்.
இதில் பெர்ஃபார்மென்ஸ் பாதிப்பு
உண்டு.
மார்க் & ஸ்வீப் கலக்டர்
அல்கரிதம்.
இதில் ஒவ்வொரு ஆப்ஜெக்டும் ஒரு
லைவ் பிட் மார்க் செய்யப்படும். எல்லாம் மார்க் செய்து விட்ட பொழுது ஸ்வீப் நடை பெறும்.இது
ஹீப்பில் ஒவ்வொன்றாக ட்ராவர்ஸ் செய்யும். அவ்வாறு ட்ராவர்ஸ் செய்யும் பொழுது மார்க்
ஆகாத மெமரி ஸ்பேசை கிளியர் செய்யும்.
இதில் பெர்ஃபார்மென்ஸ் பாதிப்பு
கிடையாது.
முற்றும்.
நன்றி
முத்து கார்த்திகேயன்,மதுரை.
TO LEARN COURSES LIKE C,C++, JAVA, DOTNET, PYTHON, PHP, WEB DESIGNING, MS-OFFICE, TALLY CONTACT:96293 29142
please feedback about this article.
please feedback about this article.
No comments:
Post a Comment