Showing posts with label JVM. Show all posts
Showing posts with label JVM. Show all posts

Friday, May 3, 2019

JVM –ஜாவா செயற்பாடுகள்-பகுதி-3



இந்த பகுதியில் 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.








ads Udanz

Saturday, April 27, 2019

JVM ­ ஜாவா செயற்பாடுகள்-பகுதி-2



இந்த பகுதியில் கம்பைலர் பற்றி காண்போம்.
ஜாவா கம்பைலரின் முதல் வேலை பிளாட்ஃபார்ம் இண்டிபெண்டென்ட்  பைட் கோடை உருவாக்குதல் ஆகும். பொதுவாக கம்பைலர் என்பது ஒரு மொழியில் நாம் கொடுக்கும் இன்புட்டை எடுத்துக் கொண்டு மெசின் கோடிங்காக மாற்றும். ஜாவா கம்பைலரானது அதற்கு பதில் பைட் கோடை வெளீயீடு செய்கின்றது.
பைட் கோடை CPU நேரடியாக புரிந்து கொள்ள இயலாது. அதற்கு ஒரு இன்டெர்பிரட்டர் தேவை. அதை தான் JVM காம்பம்னண்ட் செய்கின்றது.ஒரு பைட் கோட் ஆனது மெசின் கோடாக மாற்றம் நடப்பது பல்வேறு படி நிலைகளில் ஏற்படுகின்றது.
இதில் ஸ்டேட்டிக், டைனமிக் என்று இருவேறு கம்பைலர்கள் உள்ளது.
ஸ்டேட்டிக் கம்பைலருக்கு உதாரணம்  javac . சோர்ஸ் கோடை நீங்கள் மாற்றி கம்பைல் செய்யாவிட்டால் அதே அவுட் புட்டே வரும்.

ஸ்டேட்டிக் கம்பைலர் ஆகும் ஆனது பின் வரும் வரிகளை இன்புட்டாக ஏற்பதாக எடுத்துக் கொள்வோம்.



அதன் வெளீயீடு பைட் கோடில்:

 
 
 
 
 
டைனமிக் கம்பைலேசன் ஆனது கோடிங்க் இயங்கும் நேரத்தில்  நடப்பது.இது அப்ளிகேசன் லோட் மாற்றதிற்கு ஏற்றாற்போல் அடாப்ட் செய்து கொள்கின்றது.எந்த வித முன் கணிப்பும் செய்யா இயலா நிலையில் டைனமிக் கம்பைலர்கள் பயன்படுகின்றது.
பெரும்பாலான jvm கள் jit போன்ற (just intime compiler)கம்பைலர்களை பயன்படுத்துகின்றன.இதற்கு கூடுதல் டேட்டா ஸ்ட்ரக்சர், திரட், cpu ரிசோர்சஸ் ஆகியவை தேவைப்படும்.
ஒரு பைட் கோட்டை மெசின் கோடாக மாற்றுவதற்கு இண்டர்பிரட்டரோ அல்லது கம்பைலரோ தேவைப் படுகின்றது.
இண்டர்பிரட்டேசன் எளிய வழியாகும். இது பைட் கோடை ரீட் செய்து ஹார்டுவேர் இன்ஸ்ட்ரக்சன் ஆக மாற்றி அனுப்புகின்றது.
இது ஒரு அகராதியை பயன்படுத்துவது போல் ஒவ்வொரு அறிவுரைகளையும் மொழி மாற்றம் செய்கின்றது.ஒவ்வொரு முறை இது இன்வோக் செய்யும் பொழுதும் இன்டெர்பிரட் செய்கின்றது. எனவே வேலை மெதுவாக நடக்கின்றது.

கம்பைலேசன்  இவ்வாறு அல்லாமல் ஒட்டு மொத்தமாக லோட் செய்கின்றது. இயங்கு நேரத்தில் எவ்வாறு டிரான்ஸ்லேசன் செய்வது என்று தீர்மானிக்கபடுகின்றது. இது ஒவ்வொரு முறை டிரான்ஸ்லேசன் செய்யும் பொழுதும் பகுதியை சேமிக்கின்றது.அது அடுத்த தடவை இயக்கப்படும் பொழுது சேமிக்கப் பட்ட கோடிலிருந்து எடுத்து இயங்குகின்றது.இதனால் இயக்கம் வேகமாக நடக்கின்றது.மேலும் இது ஆப்டிமை சேசனுக்கும் வழி ஏற்படுத்துகின்றது.


வெவேறு வகையான கம்பைலர்கள்.
ஒவ்வொரு அப்ளிகேசனுக்கும்  ஏற்றாற் போல் ஒவ்வொரு விதமான கம்பைலர்கள் தேவைப்படுகின்றது.எண்டர்பிரைஸ் அப்ளிகேசன் என்றால் கூடுதல் ஆப்டிமைசேசன் செய்யக் கூடிய கம்பைலர்கள் தேவைப்படும். இதே கிளையண்ட் சைடு என்றால் குறைவான ரிசோர்ஸ்களை பயன்படுத்தி வேகமாக இயங்க வேண்டும்.
கிளையண்ட் சைட் கம்பைலர்.
இதற்கு உதாரணம் c1 கம்பைலர் இது –client என்கின்ற JVM ஸ்டார்ட் அப் ஆப்சன் மூலம் எனேபிள் செய்யப்படுகின்றது.இது அப்ளிகேசன் ஸ்டார்ட் அப் நேரத்தைக் குறைக்கின்றது.
சர்வர் சைட் கம்பைலர்.
கூடுதல் நேரம் இயங்க வேண்டிய எண்டர்பிரைஸ் அப்ளிகேசனுக்கு C1 என்ற கம்பைலரை விட கூடுதல் திறன் கொண்ட கம்பைலர்கள் தேவை.அதற்கு பதிலாக C2 என்கின்ற சர்வர் சைடு கம்பைலர் பயன்படுகின்றது.இது –SERVER என்ற JVM ஸ்டார்ட் அப் ஆப்சன் மூலம் எனேபிள் செய்யபடுகின்றது.
சர்வர் சைடு கம்பைலர் ஆனது சிக்கலான பிராஞ்ச் அனாலிசிஸ்  மற்றும் கூடுதல் டேட்டா பிரபைலிங்க்  போன்றவற்றிற்கு பயன்படுகின்றது.இதற்கு கூடுதல் திரட் மற்றும் கூடுதல் சிபியு சைக்கிள்கள் தேவைப்படும்.
TIERED   கம்பைலேசன்.
இது கிளையண்ட் சைட் கம்பைலேசன், சர்வர் சைட் கம்பைலேசன் இரண்டின் நண்மைகளயும் எடுத்துக் கொள்கின்றது. அப்ளிகேசன் தொடங்கும் பொழுது கிளையண்ட் சைட் கம்பைலேசன் ஆக்டிவாக  இருக்கின்றது.கூடுதல் ஆப்டிமைசேசனுக்கு ஏற்றாற் போல் பிறகு சர்வர் சைடு கம்பைலேசன் பங்கேற்கின்றது.
இன்டெர்பிரட்டொடு ஒப்பிடும் பொழுது கிளையண்ட் சைடு கம்பைலர் 5 அல்லது 10 மடங்கு திறன் வாய்ந்தது. இது அப்ளிகேசன் பெர்ஃபார்மன்சையும் ஏற்படுத்துகின்றது.
இந்த மாற்றம் கம்பைலரின் எஃபிசியன்ஸ்,என்னென ஆப்டிமைசேசன் இம்ப்ளிமென்ட் செய்யப்பட்டுள்ளன மற்றும் எவ்வாறு அப்ளிகேசன் நன்றாக வடிவமைக்கப்பட்டுள்ளது என்பதையும் பொறுத்ததாகும்.
-தொடரும்.
நன்றி
முத்து கார்த்திகேயன்,மதுரை.


 TO LEARN COURSES LIKE C,C++, JAVA, DOT NET, PYTHON, PHP, WEB DESIGNING, MS-OFFICE, TALLY CONTACT:96293 29142


PLEASE FEEDBACK ABOUT THIS ARTICLE








ads Udanz