Përfshirë në bërthamën Linux është propozuar një grup patch-e me një implementim të optimizuar të funksionit memchr(), i përdorur për gjetjen e karaktereve në një array. Ndryshe nga versioni i vjetër, ku kryhej krahasimi byte për byte, implementimi i propozuar është ndërtuar duke pasur parasysh shfrytëzimin e plotë të regjistrave të CPU-së 64- dhe 32-bit. Në vend të bytes, krahasimi kryhet me përdorimin e fjalëve makine, çka lejon krahasimin e të paktën 4 bytes në një herë.
Kur kërkohet në vargje të mëdha, varianti i ri rezultoi të ishte rreth 4 herë më i shpejtë se i vjetri (p.sh., për vargje prej 1000 karakteresh). Për vargjet e vogla, efikasiteti i implementimit të ri nuk është aq i dukshëm, por ende është më i lartë në krahasim me variantin fillestar. Në bërthamën Linux, madhësia e vargjeve që përpunohen në memchr() arrin deri në 512 bytes. Rritja e performancës për vargjet 512-byte, në situatën kur karakteri i kërkuar ndodhet në fund të vargut, arrin 20%.
Testimi i bërthamës 5.18 me variantin e ri 'memchr()' për arkitekturën 32- dhe 64-bit nuk zbuloi ndonjë problem. Rritja e përgjithshme e performancës së nënsistemit të bërthamës me përdorimin e variantit të optimizuar 'memchr()' ende nuk është vlerësuar, as nuk është analizuar qëllimi i zëvendësimit të implementimit (në kodin e bërthamës, thirrja e funksionit memchr() ndodhet 129 herë, përfshirë në kodet e drejtuesve dhe sistemeve të skedarëve).
Burimi: opennet.ru
