Empurrando os Limites dos Pipes do Linux: De 3,5 GiB/s para 62,5 GiB/s
2025-06-22

Este artigo explora a implementação de pipes Unix no Linux, otimizando iterativamente um programa de teste que escreve e lê dados através de um pipe. Começando com um programa simples com uma taxa de transferência de cerca de 3,5 GiB/s, o autor melhora seu desempenho em vinte vezes através de várias etapas de otimização. As melhorias principais incluem o uso das chamadas de sistema `vmsplice` e `splice` para eliminar a cópia de dados, o uso de páginas gigantes para reduzir a sobrecarga de paginação e o uso de loop ocupado para minimizar os custos de sincronização. A jornada é detalhada com exemplos de código e análise de desempenho usando a ferramenta `perf` do Linux.
(mazzo.li)
Desenvolvimento