Pro jádro Linux byla navržena implementace funkce memchr, která pracuje až 4krát rychleji

Pro jádro Linux byl navržen soubor patchů s optimalizovanou implementací funkce memchr(), která se používá k vyhledávání znaku v poli. Na rozdíl od starší verze, kde se provádělo porovnávání po bajtech, je navržená implementace postavena s ohledem na maximální využití 64- a 32-bitových registrů CPU. Místo bajtů se porovnává pomocí strojových slov, což umožňuje porovnávat alespoň 4 bajty najednou.

Při vyhledávání ve velkých řetězcích nový variant byl přibližně 4krát rychlejší než starý (například pro řetězce o 1000 znacích). U menších řetězců není účinnost nové implementace tak významná, ale stále je vyšší než u původní. V jádru Linux dosahuje velikost zpracovávaných řetězců v memchr() 512 bajtů. Zlepšení výkonu pro 512-bajtové řetězce, když se hledaný znak nachází na konci řetězce, činí 20%.

Testování jádra 5.18 s novou variantou „memchr()“ pro 32- a 64-bitové architektury neodhalilo žádné problémy. Celkový nárůst výkonu subsystémů jádra při použití optimalizované varianty „memchr()“ dosud nebyl vyhodnocen, stejně jako byla neanalyzována vhodnost nahrazení implementace (v kódu jádra se volání funkce memchr() vyskytuje 129krát, včetně kódu ovladačů a souborových systémů).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster