Zigamba zasindikizidwa zomwe zimafulumizitsa kumangidwa kwa Linux kernel ndi 50-80%

Ingo Molnar, katswiri wodziwika bwino wa Linux kernel komanso mlembi wa CFS (Completely Fair Scheduler) ntchito scheduler, akufuna kukambitsirana pa mndandanda wamakalata okonza kernel wa Linux mndandanda wa zigamba zomwe zimakhudza kuposa theka la mafayilo onse omwe ali mu kernel sources. perekani kuwonjezereka kwa liwiro la kernel yomangidwanso ndi 50-80% kutengera zoikamo. Kukhathamiritsa komwe kwakhazikitsidwa ndikochititsa chidwi chifukwa kumakhudzanso kuwonjezeredwa kwakusintha kwakukulu kwambiri m'mbiri yakukula kwa kernel - zigamba 2297 zidapangidwa kuti ziphatikizidwe nthawi imodzi, kusintha mafayilo opitilira 25 (mafayilo amutu masauzande 10 mu "kuphatikizapo/" ndi "arch/*/include/" zolemba "ndi mafayilo 15 okhala ndi zolemba zoyambira).

Kupindula kwa magwiridwe antchito kumatheka posintha njira yosinthira mafayilo amutu. Zikudziwika kuti zaka makumi atatu za chitukuko cha kernel, chikhalidwe cha mafayilo amutu chakhala chikuwoneka chokhumudwitsa chifukwa cha kukhalapo kwa chiwerengero chachikulu chodalira pakati pa mafayilo. Kukonzanso mutuwo kudatenga chaka chimodzi ndipo kumafuna kukonzanso kwakukulu kwa utsogoleri ndi odalira. Pakukonzanso, ntchito idachitidwa kuti alekanitse matanthauzidwe amtundu ndi ma API amitundu yosiyanasiyana ya kernel.

Zina mwa zosintha zomwe zachitika: kulekanitsa mafayilo apamwamba kwambiri kuchokera kwa wina ndi mnzake, kuchotsa ntchito zapaintaneti zomwe zimalumikiza mafayilo amutu, kulekanitsa mafayilo amutu amitundu ndi ma API, kuwonetsetsa kuti mafayilo amutu amasiyana (pafupifupi mafayilo a 80 anali ndi kudalira kosalunjika komwe kumasokoneza msonkhano, wowululidwa kudzera mafayilo ena apamutu), kuwonjezera zokha zodalira ku ".h" ndi ".c" mafayilo, kukhathamiritsa kwapang'onopang'ono kwa mafayilo amutu, kugwiritsa ntchito "CONFIG_KALLSYMS_FAST=y" mode, kuphatikiza kosankha kwa mafayilo a C kukhala midadada kuchepetsa chiwerengero cha mafayilo azinthu.

Zotsatira zake, ntchito yomwe idachitika idapangitsa kuti zitheke kuchepetsa kukula kwa mafayilo amutu omwe amakonzedwa pagawo lokonzekera kale ndi ma 1-2 oda. Mwachitsanzo, musanayambe kukhathamiritsa, kugwiritsa ntchito fayilo yamutu "linux/gfp.h" kunapangitsa kuti mizere ya 13543 ya code iwonjezeredwe ndikuphatikizidwa kwa mafayilo amutu odalira 303, ndipo pambuyo pa kukhathamiritsa kukula kwake kunachepetsedwa kukhala mizere ya 181 ndi mafayilo odalira 26. Kapena chitsanzo china: pokonza fayiloyo "kernel/pid.c" popanda chigamba, mizere 94 zikwizikwi ya code ikuphatikizidwa, yomwe yambiri siyigwiritsidwa ntchito mu pid.c. Kulekanitsa mafayilo amutu kunapangitsa kuti zitheke kuchepetsa kuchuluka kwa kachidindo kosinthidwa katatu, kuchepetsa chiwerengero cha mizere yokonzedwa mpaka 36 zikwi.

Pamene kernel idamangidwanso kwathunthu ndi lamulo la "make -j96 vmlinux" pamayesero, kugwiritsa ntchito zigamba kunawonetsa kuchepa kwa nthawi yomanga nthambi ya v5.16-rc7 kuchokera ku masekondi 231.34 mpaka 129.97 (kuyambira 15.5 mpaka 27.7 zomanga). pa ola limodzi), ndikuwonjezeranso magwiridwe antchito a CPU cores pamisonkhano. Ndi kumanga kowonjezereka, zotsatira za kukhathamiritsa zimawonekeranso kwambiri - nthawi yomanganso kernel mutasintha ma fayilo amutu yatsika kwambiri (kuchokera ku 112% mpaka 173% kutengera fayilo yamutu yomwe yasinthidwa). Kukhathamiritsa pakali pano kumangopezeka pazomanga za ARM64, MIPS, Sparc ndi x86 (32- ndi 64-bit).

Source: opennet.ru

Kuwonjezera ndemanga