Mtundu wachiwiri wa zigamba ndikukonzanso mafayilo amutu a Linux kernel

Ingo Molnar adapereka mtundu wachiwiri wa zigamba zomwe zimatha kuchepetsa kwambiri nthawi yomanganso kernel mwa kukonzanso utsogoleri wamafayilo amutu ndikuchepetsa kuchuluka kwazomwe zimadalira. Mtundu watsopanowu umasiyana ndi mtundu woyamba womwe udaperekedwa masiku angapo apitawo posinthidwa kukhala 5.16-rc8 kernel, ndikuwonjezera kukhathamiritsa kwina ndikukhazikitsa chithandizo chomanga pogwiritsa ntchito chojambulira cha Clang. Mukamagwiritsa ntchito Clang, kugwiritsa ntchito zigamba kumachepetsa nthawi yomanga ndi 88% kapena 77% potengera kugwiritsa ntchito zida za CPU. Pomanganso kernel ndi lamulo la "make -j96 vmlinux," nthawi yomanga idachepetsedwa kuchokera ku 337.788 mpaka masekondi 179.773.

Mtundu watsopanowu umathetsanso vuto ndi mapulagini a GCC, kukonza zolakwika zomwe zidadziwika panthawi yowunikira koyambirira, ndikugwirizanitsa mawu obwereza a "task_struct_per_task". Kuphatikiza apo, kukhathamiritsa kwa fayilo yamutu ya linux/sched.h kunapitilira ndikukhathamiritsa kwa mafayilo amutu a RDMA subsystem (infiniband) idakhazikitsidwa, zomwe zidapangitsa kuti zitheke kuchepetsa nthawi yomanga ndi 9% poyerekeza ndi mtundu woyamba. za zigamba. Chiwerengero cha mafayilo a kernel C omwe amaphatikizapo fayilo ya mutu wa linux/sched.h yachepetsedwa kuchokera ku 68% mpaka 36% poyerekeza ndi mtundu woyamba wa zigamba (kuchokera ku 99% mpaka 36% poyerekeza ndi kernel yoyambirira).

Source: opennet.ru

Kuwonjezera ndemanga