Обложка канала

Linux / Линукс

Все о мире Свободного Программного обеспечения 🐧

Linux / Линукс

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