Експеримент за повишаване на ефективността на утилитата cat

Ариадна Конилл (Ariadne Conill), създател на музикалния проигравател Audacious, инициатор на разработката на протокола IRCv3 и лидер на екипа за сигурност на Alpine Linux, проведе изследване на възможностите за оптимизиране на утилитата cat, която извежда в стандартния изходен поток съдържанието на един или повече файлове. За подобряване на производителността на cat в Linux са предложени два варианта на оптимизация, основани на използването на системни повиквания sendfile и splice за директно копиране на данни между файлови дескриптори на ниво ядро, без превключване на контекста в потребителското пространство.

Базовата реализация, използваща традиционни повиквания read и write, които водят до превключване на контекста, показа производителност от 3.6 GB/s при копиране на 4GB файл от tmpfs. Вариантът, базиран на sendfile, увеличи производителността до 6.4 GB/s, а вариантът, базиран на splice, достигна до 11.6 GB/s, т.е. се оказа по-бърз от оригиналния вариант повече от 3 пъти.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster