CPython விர்ச்சுவல் மெஷினின் உட்புறச் செயல்பாடுகளை ஆராயுங்கள், அதன் செயல்பாட்டு மாதிரியைப் புரிந்துகொள்ளுங்கள், பைதான் குறியீடு எவ்வாறு செயலாக்கப்பட்டு இயக்கப்படுகிறது என்பதற்கான நுண்ணறிவுகளைப் பெறுங்கள்.
பைதான் விர்ச்சுவல் மெஷின் உள்ளீடுகள்: CPython செயலாக்க மாதிரியில் ஆழமான மூழ்கல்
பைதான், அதன் எளிதில் படிக்கும் திறன் மற்றும் பல்துறை திறன் ஆகியவற்றிற்காகப் புகழ் பெற்றது, பைதான் மொழியின் குறிப்பு செயலாக்கமான CPython மொழிபெயர்ப்பாளருக்கு அதன் செயல்பாட்டிற்கு கடமைப்பட்டுள்ளது. CPython விர்ச்சுவல் மெஷின் (VM) உள்ளீடுகளைப் புரிந்துகொள்வது, பைதான் குறியீடு எவ்வாறு செயலாக்கப்பட்டு, இயக்கப்பட்டு, மேம்படுத்தப்படுகிறது என்பதற்கான விலைமதிப்பற்ற நுண்ணறிவுகளை வழங்குகிறது. இந்த வலைப்பதிவு இடுகை CPython செயல்பாட்டு மாதிரியின் விரிவான ஆய்வை வழங்குகிறது, அதன் கட்டமைப்பு, பைட் குறியீடு செயல்பாடு மற்றும் முக்கிய கூறுகளை ஆராய்கிறது.
CPython கட்டமைப்பைப் புரிந்துகொள்வது
CPython இன் கட்டமைப்பை பின்வரும் நிலைகளாகப் பிரிக்கலாம்:
- பிரித்தல்: பைதான் மூலக் குறியீடு முதலில் பிரிக்கப்பட்டு, ஒரு சுருக்கத் தொடரியல் மரம் (AST) உருவாக்கப்படுகிறது.
- தொகுத்தல்: AST பைதான் பைட் குறியீடாகத் தொகுக்கப்படுகிறது, இது CPython VM ஆல் புரிந்து கொள்ளப்படும் குறைந்த-நிலை அறிவுறுத்தல்களின் தொகுப்பாகும்.
- விளக்கம்: CPython VM பைட் குறியீட்டை விளக்கி இயக்குகிறது.
பைதான் குறியீடு மனிதனால் படிக்கக்கூடிய மூலத்திலிருந்து இயந்திரத்தால் இயக்கக்கூடிய அறிவுறுத்தல்களாக எவ்வாறு மாறுகிறது என்பதைப் புரிந்துகொள்ள இந்த நிலைகள் முக்கியமானவை.
பிரிப்பான்
பைதான் மூலக் குறியீட்டை ஒரு சுருக்கத் தொடரியல் மரமாக (AST) மாற்றுவதற்கு பிரிப்பான் பொறுப்பாகும். AST என்பது குறியீட்டின் கட்டமைப்பின் மரம் போன்ற பிரதிநிதித்துவமாகும், இது நிரலின் வெவ்வேறு பகுதிகளுக்கு இடையிலான உறவுகளைப் படம்பிடிக்கிறது. இந்த கட்டத்தில் லெக்சிகல் பகுப்பாய்வு (உள்ளீட்டை டோக்கனைசிங் செய்தல்) மற்றும் தொடரியல் பகுப்பாய்வு (இலக்கண விதிகளின் அடிப்படையில் மரத்தை உருவாக்குதல்) ஆகியவை அடங்கும். பைதான் தொடரியல் விதிகளுக்கு குறியீடு இணங்குவதை பிரிப்பான் உறுதி செய்கிறது; இந்த கட்டத்தில் ஏதேனும் தொடரியல் பிழைகள் கண்டுபிடிக்கப்படும்.
உதாரணம்:
எளிய பைதான் குறியீட்டை கவனியுங்கள்: x = 1 + 2.
பிரிப்பான் இதை ஒரு ஒதுக்கீட்டு செயல்பாட்டைக் குறிக்கும் AST ஆக மாற்றுகிறார், 'x' இலக்காகவும், '1 + 2' என்ற வெளிப்பாடு ஒதுக்கப்பட வேண்டிய மதிப்பாகவும் இருக்கும்.
தொகுப்பி
தொகுப்பி பிரிப்பானால் தயாரிக்கப்பட்ட AST ஐ எடுத்து பைதான் பைட் குறியீடாக மாற்றுகிறது. பைட் குறியீடு என்பது CPython VM இயக்கக்கூடிய தளம்-சார்பற்ற அறிவுறுத்தல்களின் தொகுப்பாகும். இது அசல் மூலக் குறியீட்டின் குறைந்த-நிலை பிரதிநிதித்துவமாகும், இது VM ஆல் செயல்படுத்துவதற்காக மேம்படுத்தப்பட்டது. இந்த தொகுப்பு செயல்முறை குறியீட்டை ஓரளவு மேம்படுத்துகிறது, ஆனால் அதன் முதன்மை குறிக்கோள் உயர்-நிலை AST ஐ மிகவும் நிர்வகிக்கக்கூடிய வடிவமாக மாற்றுவதாகும்.
உதாரணம்:
x = 1 + 2 என்ற வெளிப்பாட்டிற்கு, தொகுப்பி LOAD_CONST 1, LOAD_CONST 2, BINARY_ADD மற்றும் STORE_NAME x போன்ற பைட் குறியீடு அறிவுறுத்தல்களை உருவாக்கலாம்.
பைதான் பைட் குறியீடு: VM இன் மொழி
பைதான் பைட் குறியீடு என்பது CPython VM புரிந்து கொண்டு இயக்கும் குறைந்த-நிலை அறிவுறுத்தல்களின் தொகுப்பாகும். இது மூலக் குறியீடு மற்றும் இயந்திரக் குறியீட்டிற்கு இடையிலான இடைநிலை பிரதிநிதித்துவம். பைட் குறியீட்டைப் புரிந்துகொள்வது பைத்தானின் செயல்பாட்டு மாதிரியைப் புரிந்துகொள்வதற்கும் செயல்திறனை மேம்படுத்துவதற்கும் முக்கியமாகும்.
பைட் குறியீடு அறிவுறுத்தல்கள்
பைட் குறியீடு செயல்பாட்டுக் குறியீடுகளைக் கொண்டுள்ளது, ஒவ்வொன்றும் ஒரு குறிப்பிட்ட செயல்பாட்டைக் குறிக்கிறது. பொதுவான செயல்பாட்டுக் குறியீடுகளில் பின்வருவன அடங்கும்:
LOAD_CONST: ஒரு நிலையான மதிப்பை ஸ்டேக்கிற்கு ஏற்றுகிறது.LOAD_NAME: ஒரு மாறியின் மதிப்பை ஸ்டேக்கிற்கு ஏற்றுகிறது.STORE_NAME: ஸ்டேக்கிலிருந்து ஒரு மாறியின் மதிப்பைச் சேமிக்கிறது.BINARY_ADD: ஸ்டேக்கின் மேல் இரண்டு உறுப்புகளைச் சேர்க்கிறது.BINARY_MULTIPLY: ஸ்டேக்கின் மேல் இரண்டு உறுப்புகளைப் பெருக்குகிறது.CALL_FUNCTION: ஒரு செயல்பாட்டை அழைக்கிறது.RETURN_VALUE: ஒரு செயல்பாட்டிலிருந்து ஒரு மதிப்பைத் திருப்பியளிக்கிறது.
பைதான் தரநிலை நூலகத்தில் உள்ள opcode தொகுதியில் செயல்பாட்டுக் குறியீடுகளின் முழு பட்டியலையும் காணலாம். பைட் குறியீட்டை பகுப்பாய்வு செய்வது செயல்திறன் தடைகள் மற்றும் மேம்படுத்துவதற்கான பகுதிகளை வெளிப்படுத்தலாம்.
பைட் குறியீட்டை ஆய்வு செய்தல்
பைத்தானில் உள்ள dis தொகுதி பைட் குறியீட்டைப் பிரிப்பதற்கு கருவிகளை வழங்குகிறது, இது ஒரு குறிப்பிட்ட செயல்பாடு அல்லது குறியீடு துணுக்குக்கான உருவாக்கப்பட்ட பைட் குறியீட்டை ஆய்வு செய்ய உங்களை அனுமதிக்கிறது.
உதாரணம்:
```python import dis def add(a, b): return a + b dis.dis(add) ```இது add செயல்பாட்டிற்கான பைட் குறியீட்டை வெளியிடும், வாதங்களை ஏற்றுவது, கூட்டல் செய்வது மற்றும் முடிவைத் திருப்பியளிப்பது போன்ற அறிவுறுத்தல்களைக் காண்பிக்கும்.
CPython விர்ச்சுவல் மெஷின்: செயல்பாட்டில் செயல்படுத்தல்
CPython VM என்பது பைட் குறியீடு அறிவுறுத்தல்களை இயக்குவதற்குப் பொறுப்பான ஸ்டாக் அடிப்படையிலான விர்ச்சுவல் மெஷின் ஆகும். இது அழைப்பு ஸ்டாக், பிரேம்கள் மற்றும் நினைவக மேலாண்மை உள்ளிட்ட இயக்க சூழலை நிர்வகிக்கிறது.
ஸ்டாக்
ஸ்டாக் CPython VM இல் ஒரு அடிப்படை தரவு அமைப்பு. இது செயல்பாடுகளுக்கான செயல்முறைகள், செயல்பாட்டு வாதங்கள் மற்றும் திரும்பும் மதிப்புகளை சேமிக்க பயன்படுகிறது. கணக்கீடுகளைச் செய்வதற்கும் தரவு ஓட்டத்தை நிர்வகிப்பதற்கும் பைட் குறியீடு அறிவுறுத்தல்கள் ஸ்டேக்கைக் கையாளுகின்றன.
BINARY_ADD போன்ற ஒரு அறிவுறுத்தல் இயக்கப்படும்போது, அது ஸ்டேக்கிலிருந்து மேல் இரண்டு உறுப்புகளை வெளிப்படுத்துகிறது, அவற்றைச் சேர்த்து, முடிவை மீண்டும் ஸ்டேக்கிற்குத் தள்ளுகிறது.
பிரேம்கள்
ஒரு பிரேம் ஒரு செயல்பாட்டு அழைப்பின் இயக்க சூழலைக் குறிக்கிறது. இதில் பின்வரும் தகவல்கள் உள்ளன:
- செயல்பாட்டின் பைட் குறியீடு.
- உள்ளூர் மாறிகள்.
- ஸ்டாக்.
- நிரல் கவுண்டர் (இயக்கப்பட வேண்டிய அடுத்த அறிவுறுத்தலின் குறியீட்டு).
ஒரு செயல்பாடு அழைக்கப்படும்போது, ஒரு புதிய பிரேம் உருவாக்கப்பட்டு அழைப்பு ஸ்டேக்கிற்குத் தள்ளப்படுகிறது. செயல்பாடு திரும்பும்போது, அதன் பிரேம் ஸ்டேக்கிலிருந்து வெளிப்படுத்தப்படுகிறது, மேலும் செயல்படுத்தல் அழைக்கும் செயல்பாட்டின் பிரேமில் தொடர்கிறது. இந்த பொறிமுறையானது செயல்பாடு அழைப்புகள் மற்றும் திருப்பங்களை ஆதரிக்கிறது, நிரலின் வெவ்வேறு பகுதிகளுக்கு இடையிலான செயல்பாட்டு ஓட்டத்தை நிர்வகிக்கிறது.
அழைப்பு ஸ்டாக்
அழைப்பு ஸ்டாக் என்பது பிரேம்களின் ஸ்டேக் ஆகும், இது தற்போதைய செயல்பாட்டு புள்ளிக்கு வழிவகுக்கும் செயல்பாட்டு அழைப்புகளின் வரிசையைக் குறிக்கிறது. இது CPython VM செயலில் உள்ள செயல்பாட்டு அழைப்புகளைக் கண்காணிக்கவும், ஒரு செயல்பாடு முடிந்ததும் சரியான இடத்திற்குத் திரும்பவும் அனுமதிக்கிறது.
உதாரணம்: செயல்பாடு A செயல்பாடு B ஐ அழைத்தால், அது செயல்பாடு C ஐ அழைத்தால், அழைப்பு ஸ்டேக்கில் A, B மற்றும் C க்கான பிரேம்கள் இருக்கும், C மேலே இருக்கும். C திரும்பும்போது, அதன் பிரேம் வெளிப்படுத்தப்பட்டு, செயல்படுத்தல் B க்குத் திரும்பும், மேலும் பல.
நினைவக மேலாண்மை: குப்பை சேகரிப்பு
CPython தானியங்கி நினைவக மேலாண்மையைப் பயன்படுத்துகிறது, முக்கியமாக குப்பை சேகரிப்பு மூலம். இது டெவலப்பர்களை கைமுறையாக நினைவகத்தை ஒதுக்கீடு செய்வதற்கும் ஒதுக்குவதற்கும் விடுவிக்கிறது, நினைவக கசிவுகள் மற்றும் பிற நினைவகம் தொடர்பான பிழைகளின் அபாயத்தைக் குறைக்கிறது.
குறிப்பு எண்ணிக்கை
CPython இன் முதன்மை குப்பை சேகரிப்பு பொறிமுறையானது குறிப்பு எண்ணிக்கை ஆகும். ஒவ்வொரு பொருளும் அதைச் சுட்டிக்காட்டும் குறிப்புகளின் எண்ணிக்கையின் எண்ணிக்கையை பராமரிக்கிறது. குறிப்பு எண்ணிக்கை பூஜ்ஜியமாகக் குறையும்போது, பொருள் அணுக முடியாததாகி தானாகவே ஒதுக்கீடு செய்யப்படும்.
உதாரணம்:
```python a = [1, 2, 3] b = a # a மற்றும் b இரண்டும் ஒரே பட்டியல் பொருளைக் குறிக்கின்றன. குறிப்பு எண்ணிக்கை 2. del a # பட்டியல் பொருளின் குறிப்பு எண்ணிக்கை இப்போது 1. del b # பட்டியல் பொருளின் குறிப்பு எண்ணிக்கை இப்போது 0. பொருள் ஒதுக்கீடு செய்யப்படுகிறது. ```சுழற்சி கண்டறிதல்
குறிப்பு எண்ணிக்கை மட்டும் சுழற்சி குறிப்புகளைக் கையாள முடியாது, அங்கு இரண்டு அல்லது அதற்கு மேற்பட்ட பொருள்கள் ஒருவருக்கொருவர் குறிக்கின்றன, அவற்றின் குறிப்பு எண்ணிக்கை பூஜ்ஜியத்தை அடையாமல் தடுக்கிறது. இந்த சுழற்சிகளைக் கண்டறிந்து உடைக்க CPython சுழற்சி கண்டறிதல் வழிமுறையைப் பயன்படுத்துகிறது, குப்பை சேகரிப்பாளரால் நினைவகத்தை மீட்டெடுக்க அனுமதிக்கிறது.
உதாரணம்:
```python a = {} b = {} a['b'] = b b['a'] = a # a மற்றும் b இப்போது சுழற்சி குறிப்புகளைக் கொண்டுள்ளன. குறிப்பு எண்ணிக்கை மட்டும் அவற்றை மீட்டெடுக்க முடியாது. # சுழற்சி கண்டுபிடிப்பான் இந்த சுழற்சியைக் கண்டறிந்து உடைக்கும், குப்பை சேகரிப்பை அனுமதிக்கும். ```உலகளாவிய மொழிபெயர்ப்பாளர் பூட்டு (GIL)
உலகளாவிய மொழிபெயர்ப்பாளர் பூட்டு (GIL) என்பது ஒரு மியூடெக்ஸ் ஆகும், இது எந்த நேரத்திலும் பைதான் மொழிபெயர்ப்பாளரின் கட்டுப்பாட்டை வைத்திருக்க ஒரு நூலை மட்டுமே அனுமதிக்கிறது. இதன் பொருள் மல்டித்ரெட் பைதான் நிரலில், கிடைக்கும் CPU கோர்களின் எண்ணிக்கையைப் பொருட்படுத்தாமல், ஒரு நேரத்தில் ஒரு நூல் மட்டுமே பைதான் பைட் குறியீட்டை இயக்க முடியும். GIL நினைவக மேலாண்மையை எளிதாக்குகிறது மற்றும் பந்தய நிலைகளைத் தடுக்கிறது, ஆனால் CPU-கட்டுப்பாடு மல்டித்ரெட் பயன்பாடுகளின் செயல்திறனைக் கட்டுப்படுத்தலாம்.
GIL இன் தாக்கம்
GIL முக்கியமாக CPU-கட்டுப்பாடு மல்டித்ரெட் பயன்பாடுகளை பாதிக்கிறது. I/O-கட்டுப்பாடு பயன்பாடுகள், பெரும்பாலான நேரத்தை வெளிப்புற செயல்பாடுகளுக்காக காத்திருக்கும், GIL ஆல் குறைவாகவே பாதிக்கப்படுகின்றன, ஏனெனில் I/O முடிவடையும் வரை காத்திருக்கும்போது நூல்கள் GIL ஐ வெளியிட முடியும்.
GIL ஐத் தவிர்ப்பதற்கான உத்திகள்
GIL இன் தாக்கத்தைக் குறைக்க பல உத்திகளைப் பயன்படுத்தலாம்:
- மல்டிப்ராசசிங்: ஒவ்வொரு பைதான் மொழிபெயர்ப்பாளர் மற்றும் GIL உடன் பல செயல்முறைகளை உருவாக்க
multiprocessingதொகுதியைப் பயன்படுத்தவும். இது பல CPU கோர்களைப் பயன்படுத்த உங்களை அனுமதிக்கிறது, ஆனால் இது உள்-செயல்முறை தொடர்பு மேல்தலையும் அறிமுகப்படுத்துகிறது. - ஒத்திசைவற்ற நிரலாக்கம்: நூல்கள் இல்லாமல் ஒரே நேரத்தில் கிடைக்கும் திறனை அடைய
asyncioபோன்ற நூலகங்களுடன் ஒத்திசைவற்ற நிரலாக்க நுட்பங்களைப் பயன்படுத்தவும். ஒத்திசைவற்ற குறியீடு ஒரு நூலுக்குள் ஒரே நேரத்தில் பல பணிகளை இயக்க அனுமதிக்கிறது, I/O செயல்பாடுகளுக்காக அவை காத்திருக்கும்போது அவற்றுக்கிடையே மாறுகிறது. - C நீட்டிப்புகள்: C அல்லது பிற மொழிகளில் செயல்திறன்-முக்கிய குறியீட்டை எழுதி, பைத்தானுடன் இடைமுகப்படுத்த C நீட்டிப்புகளைப் பயன்படுத்தவும். C நீட்டிப்புகள் GIL ஐ வெளியிட முடியும், மற்ற நூல்கள் பைதான் குறியீட்டை ஒரே நேரத்தில் இயக்க அனுமதிக்கின்றன.
மேம்படுத்தல் நுட்பங்கள்
CPython செயல்பாட்டு மாதிரியைப் புரிந்துகொள்வது மேம்படுத்தல் முயற்சிகளுக்கு வழிகாட்ட முடியும். சில பொதுவான நுட்பங்கள் இங்கே:
புரொபைலிங்
உங்கள் குறியீட்டில் செயல்திறன் தடைகளை அடையாளம் காண புரொபைலிங் கருவிகள் உதவலாம். cProfile தொகுதி செயல்பாட்டு அழைப்பு எண்ணிக்கை மற்றும் செயல்பாட்டு நேரம் பற்றிய விரிவான தகவல்களை வழங்குகிறது, இது உங்கள் மேம்படுத்தல் முயற்சிகளை அதிக நேரம் எடுத்துக்கொள்ளும் குறியீட்டின் பகுதிகளில் கவனம் செலுத்த அனுமதிக்கிறது.
பைட் குறியீட்டை மேம்படுத்துதல்
பைட் குறியீட்டை பகுப்பாய்வு செய்வது மேம்படுத்துவதற்கான வாய்ப்புகளை வெளிப்படுத்தலாம். உதாரணமாக, தேவையற்ற மாறி தேடல்களைத் தவிர்ப்பது, உள்ளமைக்கப்பட்ட செயல்பாடுகளைப் பயன்படுத்துவது மற்றும் செயல்பாட்டு அழைப்புகளைக் குறைப்பது செயல்திறனை மேம்படுத்தும்.
திறமையான தரவு கட்டமைப்புகளைப் பயன்படுத்துதல்
சரியான தரவு கட்டமைப்புகளைத் தேர்ந்தெடுப்பது செயல்திறனை கணிசமாக பாதிக்கும். உதாரணமாக, உறுப்பினர் சோதனைகளுக்கு தொகுப்புகளைப் பயன்படுத்துவது, தேடல்களுக்கு அகராதிகளைப் பயன்படுத்துவது மற்றும் வரிசைப்படுத்தப்பட்ட தொகுப்புகளுக்கு பட்டியல்களைப் பயன்படுத்துவது திறனை மேம்படுத்தும்.
ஜஸ்ட்-இன்-டைம் (JIT) தொகுத்தல்
CPython ஒரு JIT தொகுப்பி இல்லையென்றாலும், PyPy போன்ற திட்டங்கள் அடிக்கடி இயக்கப்படும் குறியீட்டை இயந்திரக் குறியீடாக மாறும் வகையில் தொகுக்க JIT தொகுப்பைப் பயன்படுத்துகின்றன, இதன் விளைவாக கணிசமான செயல்திறன் மேம்பாடுகள் ஏற்படுகின்றன. செயல்திறன்-முக்கிய பயன்பாடுகளுக்கு PyPy ஐப் பயன்படுத்தவும்.
CPython vs. பிற பைதான் செயலாக்கங்கள்
CPython குறிப்பு செயலாக்கமாக இருந்தாலும், பிற பைதான் செயலாக்கங்கள் உள்ளன, ஒவ்வொன்றும் அதன் சொந்த பலம் மற்றும் பலவீனங்களுடன்:
- PyPy: JIT தொகுப்பியுடன் பைத்தானின் வேகமான, இணக்கமான மாற்று செயலாக்கம். குறிப்பாக CPU-கட்டுப்பாடு பணிகளுக்கு CPython ஐ விட பெரும்பாலும் குறிப்பிடத்தக்க செயல்திறன் மேம்பாடுகளை வழங்குகிறது.
- Jython: ஜாவா விர்ச்சுவல் மெஷினில் (JVM) இயங்கும் பைதான் செயலாக்கம். ஜாவா நூலகங்கள் மற்றும் பயன்பாடுகளுடன் பைதான் குறியீட்டை ஒருங்கிணைக்க உங்களை அனுமதிக்கிறது.
- IronPython: .NET பொது மொழி ரன்டைம் (CLR) இல் இயங்கும் பைதான் செயலாக்கம். .NET நூலகங்கள் மற்றும் பயன்பாடுகளுடன் பைதான் குறியீட்டை ஒருங்கிணைக்க உங்களை அனுமதிக்கிறது.
செயலாக்கத்தின் தேர்வு உங்கள் குறிப்பிட்ட தேவைகளைப் பொறுத்தது, அதாவது செயல்திறன், பிற தொழில்நுட்பங்களுடன் ஒருங்கிணைப்பு மற்றும் ஏற்கனவே உள்ள குறியீட்டுடன் இணக்கம்.
முடிவுரை
CPython விர்ச்சுவல் மெஷின் உள்ளீடுகளைப் புரிந்துகொள்வது பைதான் குறியீடு எவ்வாறு இயக்கப்பட்டு மேம்படுத்தப்படுகிறது என்பதற்கான ஆழமான பாராட்டுகளை வழங்குகிறது. கட்டமைப்பு, பைட் குறியீடு செயல்பாடு, நினைவக மேலாண்மை மற்றும் GIL ஆகியவற்றை ஆராய்வதன் மூலம், டெவலப்பர்கள் மிகவும் திறமையான மற்றும் சிறந்த பைதான் குறியீட்டை எழுத முடியும். CPython அதன் வரம்புகளைக் கொண்டிருந்தாலும், இது பைதான் சுற்றுச்சூழல் அமைப்பின் அடித்தளமாக உள்ளது, மேலும் அதன் உள்ளீடுகளைப் பற்றிய உறுதியான புரிதல் எந்த தீவிரமான பைதான் டெவலப்பருக்கும் விலைமதிப்பற்றது. PyPy போன்ற மாற்று செயலாக்கங்களை ஆராய்வது குறிப்பிட்ட சூழ்நிலைகளில் செயல்திறனை மேலும் மேம்படுத்தும். பைதான் தொடர்ந்து உருவாகி வருவதால், அதன் செயல்பாட்டு மாதிரியைப் புரிந்துகொள்வது உலகெங்கிலும் உள்ள டெவலப்பர்களுக்கு ஒரு முக்கியமான திறமையாக இருக்கும்.