Seti yezvigamba yakaburitswa inomhanyisa kuvakwa kweLinux kernel ne50-80%

. kupa kuwedzera kwekumhanya kweiyo yakazara kernel kuvakazve ne50-80% zvichienderana nezvirongwa. Iyo yakagadziriswa optimization inocherechedzwa nekuti ine chekuita nekuwedzera kweiyo yakakura seti yekuchinja munhoroondo yekuvandudza kernel - 2297 zvigamba zvakarongwa kuti zviiswe kamwechete, zvichichinja anopfuura zviuru makumi maviri neshanu mafaera (25 zviuru zvemusoro mafaera mu "zvinosanganisira. /" uye "arch/*/include/" madhairekitori "uye mafaera zviuru gumi neshanu ane zvinyorwa zvinobva).

Kubudirira kwekuita kunowanikwa nekushandura nzira yekugadzirisa mafaira emusoro. Zvinotaridzirwa kuti pamusoro pemakore makumi matatu ekugadzirwa kwekernel, mamiriro emafaira emusoro atora chitarisiko chinoodza mwoyo nekuda kwekuvapo kwenhamba yakawanda yekutenderera-kutenderera pakati pemafaira. Kugadziridzwa kwemafaira emusoro kwakatora kwegore uye kwaida kugadziridzwa kwakakosha kwehutungamiriri uye zvinotsamira. Munguva yekugadziridza, basa rakaitwa kupatsanura tsananguro yemhando uye maAPI eakasiyana kernel subsystems.

Pakati peshanduko dzakaitwa: kupatsanura mafaera emusoro wepamusoro-soro kubva kune mumwe nemumwe, kubvisa inline mabasa anobatanidza mafaera emusoro, kupatsanura mafaera emusoro emhando uye maAPIs, kuve nechokwadi chekusangana kwakasiyana kwemafaira emusoro (anenge makumi masere mafaera aive asina kunanga anoenderana nekusangana, akafumurwa kuburikidza. mamwe mafaera emusoro), kuwedzera otomatiki kwekutsamira ku ".h" uye ".c" mafaera, nhanho-ne-nhanho optimization yemusoro mafaira, kushandisa "CONFIG_KALLSYMS_FAST=y" modhi, kusanganisa kusanganisa kweC mafaira kuita mabhuroko egungano kuti kuderedza nhamba yezvinhu mafaira.

Nekuda kweizvozvo, basa rakaitwa rakaita kuti zvikwanise kudzikisa saizi yemafaira emusoro akagadziriswa padanho rekutanga-preprocessing ne 1-2 mirairo yehukuru. Semuenzaniso, kusati kwaitwa optimization, kushandisa iyo musoro faira "linux/gfp.h" yakakonzera kuwedzera kwe13543 mitsara yekodhi uye kuiswa kwe303 inotsamira misoro mafaira, uye mushure mekugadzirisa ukuru hwakaderedzwa kusvika mitsara 181 uye 26 mafaera anotsamira. Kana mumwe muenzaniso: kana uchifanogadzirisa faira "kernel/pid.c" isina chigamba, 94 zviuru mitsetse yekodhi inosanganisirwa, yakawanda yacho isingashandiswe mupid.c. Kuparadzanisa mafaira emusoro kwakaita kuti zvikwanise kuderedza huwandu hwekodhi yakagadziriswa katatu, kuderedza nhamba yemitsara yakagadziriswa kusvika ku36 zviuru.

Apo kernel yakanyatsovakwazve ne "make -j96 vmlinux" murairo pane test system, kushandiswa kwezvigamba kwakaratidza kuderedzwa munguva yekuvaka yebazi re v5.16-rc7 kubva ku231.34 kusvika ku129.97 seconds (kubva pa15.5 kusvika ku27.7 inovaka paawa), uye zvakare yakawedzera kugona kwekushandisa CPU cores panguva yemagungano. Nekuwedzera kwekuvaka, mhedzisiro ye optimization inotonyanya kuoneka - nguva yekuvakazve kernel mushure mekuita shanduko kumafaira emusoro yadzikira zvakanyanya (kubva pa112% kusvika 173% zvichienderana nemusoro faira iri kuchinjwa). Optimization iripo chete yeARM64, MIPS, Sparc uye x86 (32- uye 64-bit) zvivakwa.

Source: opennet.ru

Voeg