Для ядра Linux предложена реализация функции memchr, работающая до 4 раз быстрее
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Для включения в состав ядра Linux предложен набор патчей с оптимизированной реализацией функции memchr(), применяемой для поиска символа в массиве. В отличие от старого варианта, в котором применялось побайтовое сравнение, предложенная реализация построена с учётом полного использования 64- и 32-разрядных регистров CPU. Вместо байтов сравнение осуществляется с использованием машинных слов, что позволяет за раз сравнивать как минимум 4 байта.
При поиске в больших строках новый вариант оказался быстрее старого примерно в 4 раза (например, для строк в 1000 символов). Для строк небольшого размера эффективность новой реализации не столь значительна, но всё равно выше по сравнению с исходным вариантом. В ядре Linux размер обрабатываемых в memchr() строк достигает 512 байт. Прирост производительности для 512 байтовых строк, в ситуации, когда искомый символ находится в конце строки, составляет 20%.
Тестирование ядра 5.18 с новым вариантом "memchr()" для 32- и 64-разрядных архитектур не выявило каких-либо проблем. Общий прирост производительности подсистем ядра при использовании оптимизированного варианта "memchr()" пока не оценивался, как не анализировалась и целесообразность замены реализации (в коде ядра вызов функции memchr() встречается 129 раз, в том числе в коде драйверов и файловых систем).
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.phoronix.com/scan....)
- OpenNews: В состав Glibc включено исправление уязвимости в memcpy, подготовленное разработчиками ОС Аврора
- OpenNews: Критическая уязвимость в реализации функции memcpy для ARMv7 из состава Glibc
- OpenNews: Линус Торвальдс опроверг проблемы с планировщиком задач, всплывшие в тесте производительности
- OpenNews: Опубликованы результаты тестов производительности файловой системы Reiser5
- OpenNews: Сравнение производительности различных реализаций WebAssembly
Похожие новости:
- Ещё одна уязвимость в подсистеме ядра Linux Netfilter
- Уязвимость в подсистеме ядра Linux Netfilter
- В ядро Linux 5.19 принято около 500 тысяч строк кода, связанного с графическими драйверами
- Уязвимость в подсистеме ядра Linux perf, позволяющая поднять привилегии
- Шестая версия патчей для ядра Linux с поддержкой языка Rust
- Зависание 32-битных процессоров на ядрах Linux веток 5.15-5.17
- Проблема с отсутствием сопровождения модуля NTFS3 в ядре Linux
- Выпуск MirageOS 4.0, платформы для запуска приложений поверх гипервизора
- Состояние гонки в сборщике мусора ядра Linux, способное привести к повышению привилегий
- Доступен полностью свободный вариант ядра Linux-libre 5.17
Теги для поиска: #_kernel, #_optimization
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 11:02
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Для включения в состав ядра Linux предложен набор патчей с оптимизированной реализацией функции memchr(), применяемой для поиска символа в массиве. В отличие от старого варианта, в котором применялось побайтовое сравнение, предложенная реализация построена с учётом полного использования 64- и 32-разрядных регистров CPU. Вместо байтов сравнение осуществляется с использованием машинных слов, что позволяет за раз сравнивать как минимум 4 байта. При поиске в больших строках новый вариант оказался быстрее старого примерно в 4 раза (например, для строк в 1000 символов). Для строк небольшого размера эффективность новой реализации не столь значительна, но всё равно выше по сравнению с исходным вариантом. В ядре Linux размер обрабатываемых в memchr() строк достигает 512 байт. Прирост производительности для 512 байтовых строк, в ситуации, когда искомый символ находится в конце строки, составляет 20%. Тестирование ядра 5.18 с новым вариантом "memchr()" для 32- и 64-разрядных архитектур не выявило каких-либо проблем. Общий прирост производительности подсистем ядра при использовании оптимизированного варианта "memchr()" пока не оценивался, как не анализировалась и целесообразность замены реализации (в коде ядра вызов функции memchr() встречается 129 раз, в том числе в коде драйверов и файловых систем). =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 11:02
Часовой пояс: UTC + 5