Linuxi kerneli jaoks on pakutud välja funktsiooni memchr rakendamine, mis töötab kuni 4 korda kiiremini

Linuxi kernelisse lisamiseks on pakutud välja plaastrite komplekt koos funktsiooni memchr() optimeeritud juurutamisega, mida kasutatakse massiivist sümboli otsimiseks. Erinevalt vanast versioonist, mis kasutas bait-baidi võrdlust, on pakutud teostus üles ehitatud, võttes arvesse 64- ja 32-bitiste protsessoriregistrite täielikku kasutamist. Võrdlus toimub baitide asemel masinsõnade abil, mis võimaldab võrrelda korraga vähemalt 4 baiti.

Suurtes stringides otsides osutus uus võimalus umbes 4 korda kiiremaks kui vana (näiteks 1000 tähemärgi pikkuste stringide puhul). Väikeste stringide puhul ei ole uue teostuse efektiivsus nii märkimisväärne, kuid on siiski kõrgem võrreldes algse versiooniga. Linuxi tuumas ulatub memchr()-s töödeldud stringide suurus 512 baiti. 512-baidiste stringide jõudluse kasv olukorras, kus otsitav märk on stringi lõpus, on 20%.

5.18 kerneli testimine uue valikuga "memchr()" 32-bitiste ja 64-bitiste arhitektuuride jaoks ei näidanud probleeme. Kerneli alamsüsteemide üldist jõudluse kasvu "memchr()" optimeeritud versiooni kasutamisel pole veel hinnatud, samuti pole analüüsitud juurutuse asendamise teostatavust (kerneli koodis toimuvad funktsiooni memchr() väljakutsed 129 korda , sealhulgas draiverite ja failisüsteemide koodis).

Allikas: opennet.ru

Lisa kommentaar