Роберт Лав в своей книге "Linux: системное программирование" пишет, что readv/writev при небольщих сегментах (ядро выделяет для этого память на стеке до 8 штук) можно получить значительный прирост в производительности. Я начал тестить.
https://pastebin.com/LnJr7EW8 при размере буфера в 4096 получается время примерно одинаковое. А вот если взять небольщой размер буфера - readv/writev быстрее чуть ли не в 1.5 раза. Автор писал про кол-во элементов (кол-во сегментов) - что их кол-во менее 8 дает прирост производительности, но ни слова не сказал про размер массивов в этих сегментах. Дайте пжста обратную связь:
1. корреткно ли я делал замеры времени? (может есть какая библиотека на Си или прочее?).
2. Правильно ли я инициализоровал сегменты ? (может есть упрощенная форма)
3. Как правильно подобрать размер сегмента?
4. В каких случаях лучше использовать фрагментированный ввод/вывод? (любые советы по его использованию)