Pre Linux jadra bola navrhnutá implementácia funkcie memchr, ktorá je až 4-krát rýchlejšia.

Na zaradenie do jadra Linux bol navrhnutý súbor opráv s optimalizovanou implementáciou funkcie memchr(), ktorá sa používa na vyhľadávanie znaku v poli. Na rozdiel od starej verzie, ktorá používala porovnávanie po byte, je navrhnutá implementácia postavená so zohľadnením plného využitia 64- a 32-bitových registrov CPU. Namiesto bytov sa porovnanie vykonáva pomocou strojových slov, čo umožňuje porovnávať minimálne 4 byty naraz.

Pri vyhľadávaní vo veľkých reťazcoch sa nový variant ukázal byť približne 4-krát rýchlejší ako starý (napríklad pre reťazce s 1000 znakmi). Pre malé reťazce nie je efektívnosť novej implementácie taká výrazná, ale stále je vyššia v porovnaní s pôvodnou verziou. V jadre Linux dosahuje veľkosť spracovávaných reťazcov v memchr() 512 bytov. Nárast výkonu pre 512-bytové reťazce, v situácii, keď sa hľadaný znak nachádza na konci reťazca, predstavuje 20%.

Testovanie jadra 5.18 s novou verziou 'memchr()' pre 32- a 64-bitové architektúry neodhalilo žiadne problémy. Celkový nárast výkonu subsystémov jadra pri použití optimalizovanej verzie 'memchr()' zatiaľ nebol hodnotený, rovnako ako sa neanalizovala vhodnosť výmeny implementácie (v kóde jadra sa volanie funkcie memchr() vyskytuje 129-krát, vrátane v kóde ovládačov a súborových systémov).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster