„Linux“ branduoliui buvo pasiūlyta įdiegti „memchr“ funkciją, kuri veikia iki 4 kartų greičiau

Buvo pasiūlytas pataisų rinkinys su optimizuotu funkcijos memchr() įgyvendinimu, kuris naudojamas ieškant simbolio masyve, kad būtų galima įtraukti į Linux branduolį. Skirtingai nuo senosios versijos, kurioje buvo lyginamas baitas po baitų, siūlomas diegimas sukurtas atsižvelgiant į visišką 64 ir 32 bitų procesoriaus registrų naudojimą. Vietoj baitų lyginimas atliekamas naudojant mašininius žodžius, todėl vienu metu galima palyginti ne mažiau kaip 4 baitus.

Ieškant didelėse eilutėse, nauja parinktis pasirodė esanti maždaug 4 kartus greitesnė nei senoji (pavyzdžiui, 1000 simbolių eilutėms). Mažoms eilutėms naujojo diegimo efektyvumas nėra toks reikšmingas, bet vis tiek didesnis, palyginti su pradine versija. Linux branduolyje memchr () apdorotų eilučių dydis siekia 512 baitų. 512 baitų eilučių našumo padidėjimas, kai ieškomas simbolis yra eilutės pabaigoje, yra 20%.

Išbandžius 5.18 branduolį su nauja „memchr()“ parinktimi, skirta 32 bitų ir 64 bitų architektūroms, jokių problemų neatskleidė. Bendras branduolio posistemių našumo padidėjimas naudojant optimizuotą „memchr()“ versiją dar nebuvo įvertintas, taip pat nebuvo išanalizuota galimybė pakeisti įgyvendinimą (branduolio kode funkcija memchr() iškviečiama 129 kartus , įskaitant tvarkyklių ir failų sistemų kodą).

Šaltinis: opennet.ru

Добавить комментарий