Ingo Molnar, pêşdebirê navdar Linux kernel û nivîskarê plansazkerê peywirê yê CFS (Contemplely Fair Scheduler), ew ji bo nîqaşkirinê li ser lîsteya nameyê ya pêşdebirên kernel pêşniyar kir. Linux Rêzeçûnek ji patchan bandorê li ser nîvê zêdetir ji hemû pelên di koda çavkaniya kernelê de dikin û li gorî mîhengan, leza ji nû ve avakirina tevahî ya kernelê bi rêjeya 50-80% zêde dikin. Ev çêtirkirin girîng e ji ber ku ew mezintirîn koma guhertinan di dîroka pêşkeftina kernelê de vedihewîne - 2297 patchên ku ji bo tevlêbûnê di carekê de hatine pêşniyar kirin, ku zêdetirî 25 pelan diguherînin (10 pelên sernivîsê di peldankên "include/" û "arch/*/include/" û 15 pelên koda çavkaniyê).
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
