O Redox OS, escrito em Rust, lançou um novo relatório de status mensal para destacar as melhorias feitas neste sistema operacional de código aberto durante o mês de fevereiro.
Uma das mudanças mais interessantes é a significativa melhoria no desempenho de E/S (entrada/saída) para o sistema de arquivos RedoxFS. Vamos explorar os detalhes:
Registros para E/S eficiente:
Para separar o tamanho das operações de leitura/gravação no RedoxFS do tamanho do bloco do disco, foi introduzido o conceito de “registros”.
O tamanho do registro é uma potência de dois múltiplos do tamanho do bloco.
Para arquivos grandes, foi escolhido um tamanho recorde de 128 KiB, proporcionando um equilíbrio entre velocidades de acesso sequencial e aleatório.
Exemplo de ganho de desempenho:
O tempo de inicialização ao executar um programa grande agora é cerca de 3 vezes mais rápido do que antes.
Isso demonstra como a otimização dos registros impacta positivamente o desempenho.
Oportunidade de otimização:
A biblioteca padrão Rust usa um tamanho de buffer padrão de 8 KiB para a maioria das APIs de leitura/gravação integradas, incluindo std::io::copy.
No entanto, copiar um arquivo de 30 MiB com um tamanho de buffer de 8 KiB resulta em 3840 chamadas de esquema de ida e volta.
O Redox ainda não oferece suporte à troca direta de contexto, e o utilitário dd não utiliza E/S paralelizada ou em lote.
Futuras melhorias:
O Redox ainda não otimizou o método std::fs::copy, usado pelo programa cp do uutils.
Comparativamente, sistemas como Linux e MacOSX possuem otimizações (como fclonefileat/clone_file_range) que permitem tamanhos de buffer maiores e otimizações mais agressivas.
Próximos passos:
O projeto planeja implementar essas melhorias no relibc em um futuro próximo.
Essa otimização de tamanho de registro é um exemplo concreto de como pequenas mudanças podem resultar em grandes melhorias de desempenho. O Redox OS continua a evoluir, e há muito mais por vir
Para maiores detalhes, acesse Redox-OS.org
Até a próxima !!
Nenhum comentário:
Postar um comentário