Kukhazikitsidwa kwa ntchito ya memchr kwaperekedwa kwa Linux kernel, kuthamanga mpaka nthawi 4 mwachangu

Gulu la zigamba zokhala ndi kukhathamiritsa kwa ntchito ya memchr(), yomwe imagwiritsidwa ntchito posaka chizindikiro pamndandanda, yaperekedwa kuti ikhale mu Linux kernel. Mosiyana ndi mtundu wakale, womwe umagwiritsa ntchito kufananitsa kwa byte-byte, kukhazikitsidwa komwe kukufuna kumamangidwa poganizira kugwiritsa ntchito kwathunthu ma regista 64- ndi 32-bit CPU. M'malo mwa ma byte, kuyerekezerako kumachitika pogwiritsa ntchito mawu a makina, omwe amalola kuti ma byte 4 afanizidwe nthawi imodzi.

Pofufuza zingwe zazikulu, njira yatsopanoyi idakhala yofulumira kuwirikiza ka 4 kuposa yakale (mwachitsanzo, pazingwe za zilembo 1000). Kwa zingwe zing'onozing'ono, luso la kukhazikitsidwa kwatsopano silofunika kwambiri, komabe ndipamwamba kwambiri poyerekeza ndi choyambirira. Mu Linux kernel, kukula kwa zingwe zomwe zimakonzedwa mu memchr () zimafika 512 byte. Kupindula kwa zingwe za 512 byte, panthawi yomwe munthu wofufuzidwa ali kumapeto kwa chingwe, ndi 20%.

Kuyesa 5.18 kernel ndi njira yatsopano ya "memchr()" yamapangidwe a 32-bit ndi 64-bit sikunawonetse vuto lililonse. Kupindula konse kwa ma kernel subsystems mukamagwiritsa ntchito mtundu wokhathamiritsa wa "memchr()" sikunawunikidwebe, komanso kuthekera kosintha kukhazikitsa sikunawunikidwe (mu kernel code, kuyitanira ku memchr() ntchito kumachitika nthawi za 129. , kuphatikiza mu code ya madalaivala ndi mafayilo amachitidwe).

Source: opennet.ru

Kuwonjezera ndemanga