லினக்ஸ் கர்னலுக்கு memchr செயல்பாட்டின் செயல்படுத்தல் முன்மொழியப்பட்டது, இது 4 மடங்கு வேகமாக இயங்கும்

memchr() செயல்பாட்டின் உகந்த செயலாக்கத்துடன் கூடிய இணைப்புகளின் தொகுப்பு, ஒரு வரிசையில் ஒரு குறியீட்டைத் தேடப் பயன்படுகிறது, இது Linux கர்னலில் சேர்க்க முன்மொழியப்பட்டது. பைட்-பை-பைட் ஒப்பீட்டைப் பயன்படுத்திய பழைய பதிப்பைப் போலன்றி, முன்மொழியப்பட்ட செயலாக்கமானது 64- மற்றும் 32-பிட் CPU பதிவேடுகளின் முழுப் பயன்பாட்டையும் கணக்கில் கொண்டு கட்டமைக்கப்பட்டுள்ளது. பைட்டுகளுக்குப் பதிலாக, இயந்திர வார்த்தைகளைப் பயன்படுத்தி ஒப்பீடு செய்யப்படுகிறது, இது ஒரு நேரத்தில் குறைந்தது 4 பைட்டுகளை ஒப்பிட அனுமதிக்கிறது.

பெரிய சரங்களில் தேடும்போது, ​​​​புதிய விருப்பம் பழையதை விட 4 மடங்கு வேகமாக மாறியது (எடுத்துக்காட்டாக, 1000 எழுத்துக்கள் கொண்ட சரங்களுக்கு). சிறிய சரங்களுக்கு, புதிய செயலாக்கத்தின் செயல்திறன் மிகவும் குறிப்பிடத்தக்கதாக இல்லை, ஆனால் அசல் பதிப்போடு ஒப்பிடும்போது இன்னும் அதிகமாக உள்ளது. லினக்ஸ் கர்னலில், memchr() இல் செயலாக்கப்பட்ட சரங்களின் அளவு 512 பைட்டுகளை அடைகிறது. 512 பைட் சரங்களின் செயல்திறன் ஆதாயம், தேடப்பட்ட எழுத்து சரத்தின் முடிவில் இருக்கும் சூழ்நிலையில், 20% ஆகும்.

5.18-பிட் மற்றும் 32-பிட் கட்டமைப்புகளுக்கான புதிய "memchr()" விருப்பத்துடன் 64 கர்னலைச் சோதிப்பது எந்தச் சிக்கலையும் வெளிப்படுத்தவில்லை. "memchr()" இன் உகந்த பதிப்பைப் பயன்படுத்தும் போது கர்னல் துணை அமைப்புகளின் ஒட்டுமொத்த செயல்திறன் ஆதாயம் இன்னும் மதிப்பிடப்படவில்லை, அல்லது செயல்படுத்தலை மாற்றுவதற்கான சாத்தியக்கூறு பகுப்பாய்வு செய்யப்படவில்லை (கர்னல் குறியீட்டில், memchr() செயல்பாட்டிற்கான அழைப்புகள் 129 முறை நிகழ்கின்றன. , இயக்கிகள் மற்றும் கோப்பு முறைமைகளின் குறியீடு உட்பட).

ஆதாரம்: opennet.ru

கருத்தைச் சேர்