Ariadne Conill, criadora do reprodutor de música Audacious, iniciadora do desenvolvimento do protocolo IRCv3 e líder da equipe de segurança do Alpine Linux, conduziu um estudo sobre como otimizar a utilidade cat, que realiza a saída para o fluxo padrão de um ou mais arquivos. Para melhorar o desempenho do cat no Linux, foram propostas duas opções de otimização, baseadas no uso das chamadas de sistema sendfile e splice para a cópia direta de dados entre descritores de arquivos no nível do kernel, sem mudar o contexto para o espaço do usuário.
A implementação básica, utilizando chamadas tradicionais de read e write, que causam troca de contexto, ao copiar um arquivo de 4 GB do tmpfs, mostrou um desempenho de 3.6 GB/s. A versão baseada em sendfile conseguiu aumentar o desempenho para 6.4 GB/s, enquanto a versão baseada em splice atingiu 11.6 GB/s, ou seja, foi mais de três vezes mais rápida do que a versão original.
Fonte: opennet.ru
