Ua paʻi ʻia kahi pūʻulu o nā patch e hoʻolōʻihi i ke kūkulu ʻana o ka Linux kernel e 50-80%

ʻO Ingo Molnar, he mea hoʻomohala kernel Linux kaulana a me ka mea kākau o ka CFS (Completely Fair Scheduler) ka mea hoʻonohonoho hana, ua manaʻo ʻia no ke kūkākūkā ʻana ma ka papa inoa leka uila Linux kernel developer i kahi ʻano o nā pā e pili ana i ka hapalua o nā faila āpau i nā kumu kernel a hāʻawi i ka hoʻonui i ka wikiwiki o ke kūkulu hou ʻana i ka kernel e 50-80% ma muli o nā hoʻonohonoho. He mea koʻikoʻi ka hoʻokō ʻana i ka hoʻopili ʻana me ka hoʻohui ʻana o nā hoʻololi nui loa i ka mōʻaukala o ka hoʻomohala ʻana i ka kernel - ua manaʻo ʻia nā ʻāpana 2297 no ka hoʻopili ʻana i ka manawa hoʻokahi, e hoʻololi ana ma mua o 25 tausani mau faila (10 tausani mau faila poʻomanaʻo i ka "include". //a me "arch/*/include/" directories "a me 15 tausani waihona me nā kikokikona kumu).

Loaʻa ka loaʻa ʻana o ka hana ma ka hoʻololi ʻana i ke ʻano o ka hana ʻana i nā faila poʻo. Ua ʻike ʻia ma luna o kanakolu mau makahiki o ka hoʻomohala ʻana i ka kernel, ua lawe ka mokuʻāina o nā faila poʻomanaʻo i kahi hiʻohiʻona kaumaha ma muli o ka nui o nā hilinaʻi ma waena o nā faila. ʻO ka hoʻoponopono hou ʻana i nā faila poʻomanaʻo i hala i hoʻokahi makahiki a koi ʻia ka hana hou ʻana o ka hierarchy a me nā hilinaʻi. I ka wā o ka hoʻoponopono hou ʻana, ua hana ʻia ka hana e hoʻokaʻawale i nā wehewehe ʻano a me nā API no nā subsystem kernel ʻokoʻa.

Ma waena o nā hoʻololi i hana ʻia: ka hoʻokaʻawale ʻana i nā faila poʻomanaʻo kiʻekiʻe mai kekahi i kekahi, hoʻopau i nā hana inline e hoʻopili ai i nā faila header, hoʻokaʻawale i nā faila header no nā ʻano a me nā API, e hōʻoia ana i ka hui ʻana o nā faila poʻomanaʻo (e pili ana i nā faila 80 i loaʻa nā hilinaʻi kūʻokoʻa e hoʻopilikia ana i ka hui, ʻike ʻia ma o nā waihona poʻomanaʻo ʻē aʻe), ka hoʻohui ʻakomi o nā hilinaʻi i nā faila ".h" a me ".c", ka hoʻonui ʻana i kēlā me kēia ʻanuʻu o nā faila poʻomanaʻo, hoʻohana i ke ʻano "CONFIG_KALLSYMS_FAST=y", koho hoʻohui i nā faila C i nā poloka hui e e hoemi i ka nui o na waihona mea.

ʻO ka hopena, ʻo ka hana i hana ʻia i hiki ke hoʻemi i ka nui o nā faila poʻomanaʻo i hoʻoponopono ʻia ma ka pae post-preprocessing e 1-2 mau kauoha o ka nui. No ka laʻana, ma mua o ka hoʻonui ʻana, me ka hoʻohana ʻana i ka faila poʻomanaʻo "linux/gfp.h" i hoʻohui ʻia i nā laina 13543 o ke code a me ka hoʻokomo ʻana i nā faila poʻomanaʻo hilinaʻi 303, a ma hope o ka hoʻonui ʻia ua hoʻemi ʻia ka nui i nā laina 181 a me nā faila hilinaʻi 26. A i ʻole he laʻana ʻē aʻe: i ka wā e hana mua ai i ka faila "kernel/pid.c" me ka ʻole o kahi pā, ua hoʻokomo ʻia nā laina 94 tausani o ke code, ʻaʻole hoʻohana ʻia ka hapa nui ma pid.c. ʻO ka hoʻokaʻawale ʻana i nā faila poʻomanaʻo i hiki ke hōʻemi i ka nui o nā code i hana ʻia e ʻekolu mau manawa, e hōʻemi ana i ka helu o nā laina i hana ʻia i 36 tausani.

I ka wā i kūkulu hou ʻia ai ka kernel me ke kauoha "make -j96 vmlinux" ma kahi ʻōnaehana hoʻāʻo, ua hōʻike ʻia ka hoʻohana ʻana o nā patches i ka hōʻemi ʻana i ka manawa kūkulu o ka lālā v5.16-rc7 mai 231.34 a i 129.97 kekona (mai 15.5 a 27.7 kūkulu. i kēlā me kēia hola), a hoʻonui pū i ka pono o ka hoʻohana ʻana i nā cores CPU i ka wā o nā hui. Me ka hoʻonui ʻana, ʻoi aku ka ʻike o ka hopena o ka loiloi - ʻo ka manawa e kūkulu hou ai i ka kernel ma hope o ka hoʻololi ʻana i nā faila poʻomanaʻo ua emi nui (mai 112% a i 173% ma muli o ka hoʻololi ʻana o ka faila poʻo). Loaʻa nā hoʻolālā i kēia manawa no ka ARM64, MIPS, Sparc a me x86 (32- a me 64-bit) mau hale kiʻi.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka