Linux-ytimelle on ehdotettu memchr-toiminnon toteutusta, joka toimii jopa 4 kertaa nopeammin

Joukko korjaustiedostoja, joissa on optimoitu memchr()-funktio, jota käytetään symbolin etsimiseen taulukosta, on ehdotettu sisällytettäväksi Linux-ytimeen. Toisin kuin vanhassa versiossa, jossa käytettiin tavukohtaista vertailua, ehdotettu toteutus on rakennettu ottaen huomioon 64- ja 32-bittisten CPU-rekisterien täysi käyttö. Vertailu suoritetaan tavujen sijaan konesanoilla, jolloin voidaan verrata vähintään 4 tavua kerrallaan.

Suurista merkkijonoista haettaessa uusi vaihtoehto osoittautui noin 4 kertaa nopeammaksi kuin vanha (esimerkiksi 1000 merkin merkkijonoille). Pienillä merkkijonoilla uuden toteutuksen tehokkuus ei ole niin merkittävä, mutta on silti korkeampi kuin alkuperäisessä versiossa. Linux-ytimessä memchr():ssä käsiteltyjen merkkijonojen koko saavuttaa 512 tavua. 512-tavuisten merkkijonojen suorituskyvyn vahvistus tilanteessa, jossa haettu merkki on merkkijonon lopussa, on 20%.

5.18-ytimen testaus uudella "memchr()"-vaihtoehdolla 32- ja 64-bittisille arkkitehtuureille ei paljastanut ongelmia. Ytimen alijärjestelmien yleistä suorituskyvyn kasvua käytettäessä "memchr()":n optimoitua versiota ei ole vielä arvioitu, eikä toteutuksen korvaamisen mahdollisuutta ole analysoitu (ytimen koodissa memchr()-funktiota kutsutaan 129 kertaa , mukaan lukien ohjainten ja tiedostojärjestelmien koodissa).

Lähde: opennet.ru

Lisää kommentti