இங்கோ மோல்னார், ஒரு புகழ்பெற்ற டெவலப்பர் Linux கெர்னல் மற்றும் CFS (Completely Fair Scheduler) பணி திட்டமிடுபவரின் ஆசிரியர், கெர்னல் உருவாக்குநர்களின் அஞ்சல் பட்டியலில் இதை விவாதத்திற்கு முன்மொழிந்தார். Linux கர்னல் மூலக் குறியீட்டில் உள்ள பாதிக்கும் மேற்பட்ட கோப்புகளைப் பாதிக்கும் தொடர் திருத்தங்கள், அமைப்புகளைப் பொறுத்து, முழு கர்னல் மறு உருவாக்கங்களின் வேகத்தில் 50-80% அதிகரிப்பை வழங்குகின்றன. இந்த உகப்பாக்கம் குறிப்பிடத்தக்கது, ஏனெனில் இது கர்னல் உருவாக்க வரலாற்றிலேயே மிகப்பெரிய மாற்றங்களின் தொகுப்பை உள்ளடக்கியுள்ளது—ஒரே நேரத்தில் சேர்க்க முன்மொழியப்பட்ட 2297 திருத்தங்கள், 25-க்கும் மேற்பட்ட கோப்புகளை மாற்றுகின்றன ("include/" மற்றும் "arch/*/include/" கோப்பகங்களில் உள்ள 10 தலைப்புக் கோப்புகள் மற்றும் 15 மூலக் குறியீடு கோப்புகள்).
தலைப்பு கோப்புகளை செயலாக்கும் முறையை மாற்றுவதன் மூலம் செயல்திறன் ஆதாயம் அடையப்படுகிறது. முப்பது ஆண்டுகளுக்கும் மேலான கர்னல் வளர்ச்சியில், கோப்புகளுக்கு இடையில் அதிக எண்ணிக்கையிலான குறுக்கு-சார்புகள் இருப்பதால், தலைப்பு கோப்புகளின் நிலை ஒரு சோகமான தோற்றத்தைப் பெற்றுள்ளது என்பது குறிப்பிடத்தக்கது. தலைப்பு கோப்பு மறுசீரமைப்பு ஒரு வருடத்திற்கு மேல் எடுத்தது மற்றும் படிநிலை மற்றும் சார்புகளின் குறிப்பிடத்தக்க மறுவேலை தேவைப்படுகிறது. மறுசீரமைப்பின் போது, வெவ்வேறு கர்னல் துணை அமைப்புகளுக்கான வகை வரையறைகள் மற்றும் APIகளை பிரிக்கும் பணி செய்யப்பட்டது.
செய்யப்பட்ட மாற்றங்களில்: ஒன்றுக்கொன்று உயர்நிலை தலைப்பு கோப்புகளை பிரித்தல், தலைப்பு கோப்புகளை இணைக்கும் இன்லைன் செயல்பாடுகளை நீக்குதல், வகைகள் மற்றும் API களுக்கான தலைப்பு கோப்புகளை பிரித்தல், தலைப்பு கோப்புகளின் தனித்தனி அசெம்பிளியை உறுதி செய்தல் (சுமார் 80 கோப்புகள் அசெம்பிளியில் குறுக்கிடும் மறைமுக சார்புகளைக் கொண்டிருந்தன. மற்ற தலைப்பு கோப்புகள்), ".h" மற்றும் ".c" கோப்புகளுக்கு சார்புகளை தானாகச் சேர்ப்பது, தலைப்புக் கோப்புகளின் படிப்படியான மேம்படுத்தல், "CONFIG_KALLSYMS_FAST=y" பயன்முறையைப் பயன்படுத்துதல், C கோப்புகளை அசெம்பிளி தொகுதிகளாகத் தேர்ந்தெடுத்து ஒருங்கிணைப்பது பொருள் கோப்புகளின் எண்ணிக்கையை குறைக்கிறது.
இதன் விளைவாக, செய்யப்பட்ட பணியானது பிந்தைய செயலாக்க கட்டத்தில் செயலாக்கப்பட்ட தலைப்பு கோப்புகளின் அளவை 1-2 ஆர்டர்களால் குறைக்க முடிந்தது. எடுத்துக்காட்டாக, தேர்வுமுறைக்கு முன், "linux/gfp.h" என்ற தலைப்புக் கோப்பைப் பயன்படுத்துவதால், 13543 கோடுகள் சேர்க்கப்பட்டு 303 சார்ந்த தலைப்புக் கோப்புகள் சேர்க்கப்பட்டன, மேலும் தேர்வுமுறைக்குப் பிறகு அளவு 181 வரிகள் மற்றும் 26 சார்பு கோப்புகளாகக் குறைக்கப்பட்டது. அல்லது மற்றொரு உதாரணம்: பேட்ச் இல்லாமல் “kernel/pid.c” கோப்பை முன்செயல்படுத்தும் போது, 94 ஆயிரம் கோடுகள் சேர்க்கப்பட்டுள்ளன, அவற்றில் பெரும்பாலானவை pid.c இல் பயன்படுத்தப்படவில்லை. தலைப்புக் கோப்புகளைப் பிரிப்பதன் மூலம், செயலாக்கப்பட்ட குறியீட்டின் அளவை மூன்று மடங்கு குறைக்க முடிந்தது, செயலாக்கப்பட்ட வரிகளின் எண்ணிக்கையை 36 ஆயிரமாகக் குறைத்தது.
ஒரு சோதனை அமைப்பில் "make -j96 vmlinux" கட்டளையுடன் கர்னல் முழுவதுமாக மீண்டும் கட்டமைக்கப்பட்ட போது, இணைப்புகளின் பயன்பாடு v5.16-rc7 கிளையின் உருவாக்க நேரத்தை 231.34 முதல் 129.97 வினாடிகள் (15.5 முதல் 27.7 வரை உருவாக்குதல் வரை) குறைத்தது. ஒரு மணி நேரத்திற்கு), மேலும் அசெம்பிளிகளின் போது CPU கோர்களைப் பயன்படுத்துவதன் செயல்திறனையும் அதிகரித்தது. அதிகரிக்கும் உருவாக்கத்துடன், தேர்வுமுறையின் விளைவு இன்னும் கவனிக்கத்தக்கது - தலைப்புக் கோப்புகளில் மாற்றங்களைச் செய்த பிறகு கர்னலை மீண்டும் உருவாக்குவதற்கான நேரம் கணிசமாகக் குறைந்துள்ளது (தலைப்புக் கோப்பு மாற்றப்படுவதைப் பொறுத்து 112% முதல் 173% வரை). மேம்படுத்தல்கள் தற்போது ARM64, MIPS, Sparc மற்றும் x86 (32- மற்றும் 64-bit) கட்டமைப்புகளுக்கு மட்டுமே கிடைக்கின்றன.
ஆதாரம்: opennet.ru
