An buga saitin faci waɗanda ke hanzarta gina kernel na Linux da 50-80%

Ingo Molnar, sanannen mai haɓaka kernel na Linux kuma marubucin mai tsara ɗawainiya na CFS (Gabatarwa Mai Kyau), ya ba da shawara don tattaunawa kan jerin wasiƙun masu haɓaka kernel na Linux jerin faci waɗanda ke shafar fiye da rabin duk fayilolin da ke cikin tushen kernel. samar da karuwa a cikin gudun cikakken sake gina kwaya da 50-80% dangane da saituna. Haɓakawa da aka aiwatar yana da mahimmanci a cikin cewa yana da alaƙa da ƙari mafi girma na canje-canje a cikin tarihin ci gaban kwaya - 2297 faci an gabatar da su don haɗawa lokaci ɗaya, canza fayiloli sama da 25 (fayilolin jagora dubu 10 a cikin “haɗa). /" da "arch / * / hada da /" kundayen adireshi "da fayiloli dubu 15 tare da rubutun tushe).

Ana samun nasarar aikin ta hanyar canza hanyar sarrafa fayilolin kan kai. An lura cewa sama da shekaru talatin na ci gaban kwaya, yanayin fayilolin kan kai ya ɗauki kamanni mai ban tsoro saboda kasancewar babban adadin dogaro tsakanin fayiloli. Sake fasalin fayil ɗin taken ya ɗauki sama da shekara guda kuma yana buƙatar sake yin aiki mai mahimmanci na matsayi da abubuwan dogaro. A lokacin sake fasalin, an yi aiki don ware nau'ikan ma'anoni da APIs don tsarin kernel daban-daban.

Daga cikin canje-canjen da aka yi: raba manyan fayiloli na kai daga juna, kawar da ayyuka na layi waɗanda ke haɗa fayilolin kan kai, raba fayilolin kan kai don nau'ikan da APIs, tabbatar da haɗuwa daban-daban na fayilolin kan kai (kusan fayilolin 80 suna da dogaro kai tsaye suna tsoma baki tare da taro, fallasa ta hanyar. sauran fayilolin kan kai), ƙari ta atomatik na abin dogaro ga fayilolin “.h” da “.c”, haɓaka mataki-mataki na fayilolin kan kai, amfani da yanayin “CONFIG_KALLSYMS_FAST=y”, zaɓin ƙarfafa fayilolin C cikin tubalan taro zuwa rage adadin fayilolin abu.

A sakamakon haka, aikin da aka yi ya ba da damar rage girman fayilolin rubutun da aka sarrafa a mataki na gaba-gaba ta hanyar 1-2 na girma. Misali, kafin ingantawa, ta yin amfani da fayil ɗin taken "linux/gfp.h" ya haifar da ƙarin layukan layukan 13543 da haɗa fayilolin masu dogara na 303, kuma bayan haɓakawa an rage girman zuwa layin 181 da fayilolin dogara 26. Ko wani misali: lokacin da ake aiwatar da fayil ɗin "kernel/pid.c" ba tare da faci ba, an haɗa layin lamba 94, yawancin waɗanda ba a amfani da su a cikin pid.c. Rarraba fayilolin kan kai ya ba da damar rage adadin lambobin da aka sarrafa sau uku, yana rage adadin layukan da aka sarrafa zuwa dubu 36.

Lokacin da aka sake gina kwaya gaba ɗaya tare da umarnin "make -j96 vmlinux" akan tsarin gwaji, aikace-aikacen faci ya nuna raguwar lokacin gina reshen v5.16-rc7 daga 231.34 zuwa 129.97 seconds (daga 15.5 zuwa 27.7 yana ginawa). a kowace awa), sannan kuma yana haɓaka haɓakar amfani da kayan kwalliyar CPU yayin taro. Tare da haɓaka haɓakawa, tasirin haɓakawa ya fi sananne - lokacin sake gina kwaya bayan yin canje-canje ga fayilolin taken ya ragu sosai (daga 112% zuwa 173% dangane da canza fayil ɗin taken). Ana samun haɓakawa a halin yanzu don ARM64, MIPS, Sparc da x86 (32- da 64-bit) gine-gine.

source: budenet.ru

Add a comment