Avaldatud on patšide komplekt, mis kiirendab Linuxi tuuma koostamist 50-80% võrra.

Ingo Molnar, tuntud Linuxi tuuma arendaja ja Completely Fair Scheduler'i (CFS) autor, pakkus arutamiseks Linuxi tuuma arendajate meililistis välja seeria plaastrite komplekte, mis mõjutavad rohkem kui poole kõigist failidest tuuma allika koodis ning tagavad tuuma täieliku ümberkompileerimise kiirusetõusu 50–80% sõltuvalt seadistustest. Tehtud optimeerimine on märkimisväärne, kuna see hõlmab suurima muudatuste komplekti tuuma arenduse ajaloos — korraga on ette nähtud 2297 plaastrit, mis muudavad rohkem kui 25 000 faili (10 000 päise faili kaustades „include/” ja „arch/*/include/” ning 15 000 allika failide seas).

Suurenenud jõudlus saavutatakse pealkirjafailide töötlemise meetodi muutmise kaudu. On märgitud, et kolmekümne aasta jooksul tuumade arendamisel on pealkirjafailide seisund muutunud probleemseks, kuna failide vahel on palju risttugedeid. Pealkirjafailide struktuuri ümberkorraldamine võttis rohkem kui aasta ja nõudis märkimisväärset ümbertegemist hierarhias ja sõltuvustes. Ümberkorraldamise käigus tehti töö, et eraldada tüüpide ja API definitsioonid erinevate tuumasüsteemide jaoks.

Tehtud muudatused hõlmavad: üksteisest eraldatud kõrgetasemeliste pealkirjade failide eemaldamine, inline-funktsioonide seostavate pealkirjade failide eemaldamine, pealkirjade failide eristamine tüüpide ja API jaoks, pealkirjade failide eraldi koostamise tagamine (umbes 80 faili sisaldasid koostamist segavaid kaudseid sõltuvusi, mis ilmusid läbi teiste pealkirjade failide), sõltuvuste automaatne lisamine failidele " .h " ja " .c ", pealkirjade failide samm-sammuline optimeerimine, " CONFIG_KALLSYMS_FAST=y " režiimi kasutamine, ning C-failide valikuline konsolideerimine koostamisplokkides, et vähendada objektifailide arvu.

Lõppkokkuvõttes võimaldas tehtud töö vähendada pealkirjafailide suurust, mida töödeldakse eeltöötlemise etapis, 1-2 korda. Näiteks enne optimeerimist viis pealkirjafaili «linux/gfp.h» kasutamine 13543 koodireani ja 303 sõltuva pealkirjafaili lisamiseni, kuid pärast optimeerimist vähenes selle suurus 181 reani ja 26 sõltuvale failile. Teine näide: faili «kernel/pid.c» eeltöötlemisel ilma patch'ita kaasatakse 94 tuhat koodirida, millest suurem osa ei ole pid.c-s kasutusel. Pealkirjafailide jagamine võimaldas vähendada töödeldava koodi mahtu kolm korda, vähendades töödeldud ridu 36 tuhandele.

Kernikomplektimise käigus käsuga „make -j96 vmlinux” test süsteemis näitas patšide rakendamine haru v5.16-rc7 kompileerimise aja vähenemist 231,34 sekundilt 129,97 sekundile (15,5 kuni 27,7 kompileerimist tunnis) ning samuti täiustas see CPU tuumade efektiivsust kompileerimise ajal. Inkrementaalsel kompileerimisel on optimeerimise mõju veelgi silmatorkavam — kärpis ümberkompilarimise aega pärast pealdusfailides muudetud muudatuste tegemist märkimisväärselt (112% kuni 173% sõltuvalt muudetud pealdusfailist). Optimeerimised on praegu saadaval ainult arhitektuuridele ARM64, MIPS, Sparc ja x86 (32- ja 64-bit).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster