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

Linux / Линукс

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

Linux / Линукс

4 года назад
Открыть в
Эксперимент по повышению эффективности работы утилиты cat Ариадна Конилл, создатель музыкального проигрывателя Audacious, инициатор разработки протокола IRCv3 и лидер команды по обеспечению безопасности Alpine Linux, провела исследование насколько можно оптимизировать утилиту cat. Для улучшения производительности cat в Linux предложено два варианта оптимизаций. Они основаны на использовании системных вызовов sendfile и splice для прямого копирования данных между файловыми дескрипторами на уровне ядра без переключения контекста в пространство пользователя. Базовая реализация, использующая традиционные вызовы read и write, приводящие к переключению контекста, при копировании 4ГБ файла из tmpfs показала производительность 3.6 GB/s. Вариант на базе sendfile позволил повысить производительность до 6.4 GB/s, а вариант на базе splice - до 11.6 GB/s, т.е. оказался быстрее исходного варианта более чем в 3 раза.