Pentru miez Linux A fost propusă o implementare a funcției memchr care funcționează de până la 4 ori mai rapid.

Pentru a fi inclus în nucleu Linux предложен набор патчей с оптимизированной реализацией функции memchr(), применяемой для поиска символа в массиве. В отличие от старого варианта, в котором применялось побайтовое сравнение, предложенная реализация построена с учётом полного использования 64- и 32-разрядных регистров CPU. Вместо байтов сравнение осуществляется с использованием машинных слов, что позволяет за раз сравнивать как минимум 4 байта.

При поиске в больших строках новый вариант оказался быстрее старого примерно в 4 раза (например, для строк в 1000 символов). Для строк небольшого размера эффективность новой реализации не столь значительна, но всё равно выше по сравнению с исходным вариантом. В ядре Linux размер обрабатываемых в memchr() строк достигает 512 байт. Прирост производительности для 512 байтовых строк, в ситуации, когда искомый символ находится в конце строки, составляет 20%.

Testarea nucleului 5.18 cu noua opțiune „memchr()” pentru arhitecturile pe 32 și 64 de biți nu a evidențiat nicio problemă. Câștigul general de performanță al subsistemelor kernel atunci când se utilizează versiunea optimizată a „memchr()” nu a fost încă evaluat și nici fezabilitatea înlocuirii implementării nu a fost analizată (în codul nucleului, apelurile la funcția memchr() apar de 129 de ori , inclusiv în codul driverelor și sistemelor de fișiere).

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster