Komek patches hatine weşandin ku avakirina kernel Linux% 50-80 lez dikin.

Ingo Molnar, pêşdebirkerek naskirî yê kernel Linux û nivîskarê nexşerêya peywira CFS (Tevahiya Dadperwer), ji bo nîqaşê li ser navnîşa nameyan a pêşdebirên kernel Linux-ê rêzek paçên ku bandorê li zêdetirî nîvê hemî pelên di çavkaniyên kernel de dike û li gorî mîhengan 50-80% zêdekirina leza nûavakirina kernelek bêkêmasî peyda dike. Optimîzasyona hatî bicîh kirin balkêş e ku ew bi lêzêdekirina koma herî mezin a guhertinên di dîroka pêşkeftina kernelê de têkildar e - 2297 paç ji bo tevlêbûnê bi yekcarî hatin pêşniyar kirin, ku zêdetirî 25 hezar pelan biguhezînin (10 hezar pelên sernavê di nav de /" û "arch/*/include/" derhênerên "û 15 hezar pelên bi nivîsên çavkanî).

Qezenckirina performansê bi guheztina rêbaza hilberandina pelên sernavê tê bidestxistin. Tê zanîn ku zêdetirî sî sal ji pêşkeftina kernelê, rewşa pelên sernavê ji ber hebûna hejmareke mezin a girêdanên xaçê di navbera pelan de xuyangek xemgîn girtiye. Ji nû veavakirina pelê sernavê salek dirêj kir û ji nûvekirina girîng a hiyerarşiyê û pêwendiyan hewce dike. Di dema nûavakirinê de, xebat hate kirin ku pênaseyên celeb û API-yên ji bo bine pergalên cihêreng ên kernel ji hev veqetînin.

Di nav guhertinên ku hatine çêkirin de: veqetandina pelên sernavê yên asta bilind ji hevûdu, rakirina fonksiyonên xêzkirî yên ku pelên sernavê girêdidin, veqetandina pelên sernavê ji bo celeb û API-yan, misogerkirina kombûna cihêreng a pelên sernavê (nêzîkî 80 pelan girêdanên nerasterast ên ku bi meclîsê re têkildar bûn, derketin holê. pelên sernivîsê yên din), lêzêdekirina otomatîkî ya girêdanan bi pelên ".h" û ".c", xweşbînkirina pelên sernavê gav bi gav, karanîna moda "CONFIG_KALLSYMS_FAST=y", yekkirina hilbijartî ya pelên C di blokên kombûnê de hejmara pelên object kêm bike.

Wekî encamek, xebata hatî kirin îmkan da ku mezinahiya pelên sernavê yên ku di qonaxa paş-pêş-pêvajoyê de têne hilberandin bi 1-2 fermanên mezinahiyê kêm bikin. Mînakî, berî xweşbîniyê, bi karanîna pelê sernavê "linux/gfp.h" 13543 rêzikên kodê hatin zêdekirin û 303 pelên sernavê yên girêdayî hatin zêdekirin, û piştî xweşbîniyê mezinahî daket 181 rêzan û 26 pelên girêdayî. An jî mînakek din: dema pelê "kernel/pid.c" bêyî patchê pêşdixe, 94 hezar rêzikên kodê tê de hene, ku piraniya wan di pid.c de nayên bikar anîn. Ji hev veqetandina pelên sernavê îmkan kir ku mîqdara koda hatî hilanîn sê carî kêm bike, hejmara xetên pêvajoyî daket 36 hezarî.

Dema ku kernel bi tevahî bi fermana "make -j96 vmlinux" li ser pergalek ceribandinê ji nû ve hate çêkirin, serîlêdana paçeyan di dema çêkirina şaxê v5.16-rc7 de ji 231.34 ber 129.97 saniyeyan (ji 15.5 ber 27.7 avabûnên serê saetê), û di heman demê de karbidestiya karanîna core CPU di dema civînan de zêde kir. Bi avahiyek zêdebûyî re, bandora xweşbîniyê hê bêtir xuya dibe - dema ji nû ve avakirina kernelê piştî guheztina pelên sernavê pir kêm bûye (ji 112% heya 173% li gorî pelê sernavê ku tê guheztin). Optimîzasyon niha tenê ji bo mîmariyên ARM64, MIPS, Sparc û x86 (32- û 64-bit) hene.

Source: opennet.ru

Add a comment