Комментарии 3
Дополнительно:
В ядре Linux 5.1 реализован новый интерфейс для асинхронного ввода/вывода — io_uring, который примечателен поддержкой поллинга ввода/вывода и возможностью работы как с буферизацией, так и без буферизации. Напомним, что предлагаемый ранее механизм асинхронного ввода/вывода «aio» не поддерживал буферизированный ввод/вывод, мог работать только в режиме O_DIRECT (без буферизации и в обход кэша), имел проблемы с возникновением блокировок из-за ожидания доступности метаданных и демонстрировал большие накладные расходы из-за копирования данных в памяти.
В ядре Linux 5.1 реализован новый интерфейс для асинхронного ввода/вывода — io_uring, который примечателен поддержкой поллинга ввода/вывода и возможностью работы как с буферизацией, так и без буферизации. Напомним, что предлагаемый ранее механизм асинхронного ввода/вывода «aio» не поддерживал буферизированный ввод/вывод, мог работать только в режиме O_DIRECT (без буферизации и в обход кэша), имел проблемы с возникновением блокировок из-за ожидания доступности метаданных и демонстрировал большие накладные расходы из-за копирования данных в памяти.
+3
Было бы интересно, если бы в сравнение производительсности были включены корутины. На сколько я в курсе, на C тоже есть библиотеки, позволяющие реализовать этот механизм.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Производительность сетевых приложений Linux. Введение