Se propone una implementación de la función memchr para el núcleo de Linux, que funciona hasta 4 veces más rápido

Se ha propuesto un conjunto de parches para incluir en el núcleo de Linux con una implementación optimizada de la función memchr(), utilizada para buscar un carácter en un arreglo. A diferencia de la versión anterior, que utilizaba comparaciones byte a byte, la implementación sugerida está diseñada para aprovechar al máximo los registros de CPU de 64 y 32 bits. En lugar de comparar byte a byte, la comparación se realiza utilizando palabras de máquina, lo que permite comparar al menos 4 bytes a la vez.

Al buscar en cadenas grandes, la nueva versión resultó ser aproximadamente 4 veces más rápida que la anterior (por ejemplo, para cadenas de 1000 caracteres). Para cadenas de menor tamaño, la eficacia de la nueva implementación no es tan significativa, pero sigue siendo mayor que la del enfoque original. En el núcleo de Linux, el tamaño de las cadenas procesadas en memchr() puede alcanzar hasta 512 bytes. La mejora en el rendimiento para cadenas de 512 bytes, en situaciones donde el carácter buscado se encuentra al final de la cadena, es del 20%.

Las pruebas del núcleo 5.18 con la nueva versión de "memchr()" para arquitecturas de 32 y 64 bits no revelaron problemas. La mejora general en el rendimiento de las subsistemas del núcleo al utilizar la versión optimizada de "memchr()" aún no ha sido evaluada, al igual que la viabilidad de reemplazar la implementación (en el código del núcleo, la función memchr() se llama 129 veces, incluyendo en el código de controladores y sistemas de archivos).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster