An gabatar da aiwatar da aikin memchr don Linux kernel, yana gudana har sau 4 cikin sauri

Saitin faci tare da ingantaccen aiwatar da aikin memchr(), da aka yi amfani da shi don nemo alama a cikin tsararru, an ba da shawarar haɗawa cikin kwaya ta Linux. Ba kamar tsohon sigar ba, wanda ya yi amfani da kwatancen byte-by-byte, aiwatar da aikin da aka tsara an gina shi la’akari da cikakken amfani da rajistar CPU 64- da 32-bit. Maimakon bytes, ana yin kwatancen ta amfani da kalmomin inji, wanda ke ba da damar aƙalla aƙalla 4 bytes a lokaci guda.

Lokacin bincike cikin manyan igiyoyi, sabon zaɓin ya juya ya zama kusan sau 4 cikin sauri fiye da tsohuwar (misali, don kirtani na haruffa 1000). Don ƙananan igiyoyi, ingantaccen aikin sabon aiwatarwa ba shi da mahimmanci, amma har yanzu yana da girma idan aka kwatanta da sigar asali. A cikin Linux kernel, girman kirtani da aka sarrafa a memchr() ya kai 512 bytes. Ribar da aka samu don igiyoyin byte 512, a cikin halin da ake ciki inda halin da aka nema yake a ƙarshen kirtani, shine 20%.

Gwajin kernel 5.18 tare da sabon zaɓi na "memchr()" don gine-ginen 32-bit da 64-bit bai bayyana wata matsala ba. Har yanzu ba a tantance yawan fa'idar aikin kernel subsystems lokacin amfani da ingantacciyar sigar "memchr()" ba, kuma ba a tantance yuwuwar maye gurbin aiwatarwa ba (a cikin lambar kernel, kira zuwa aikin memchr() ya faru sau 129 , ciki har da a cikin lambar direbobi da tsarin fayil).

source: budenet.ru

Add a comment