Confira !
Foi enviado no ano passado um "pedido de comentários" sobre o "Maple Tree" como uma nova estrutura de dados para o kernel Linux . A última versão dos patches do Maple Tree foi enviada hoje com resultados mistos, mas para onde os ganhos estão sendo feitos, eles podem ser bastante significativos.
O Maple Tree é uma estrutura de dados para armazenar faixas de índice que mapeiam para um único ponteiro e funcionam bem em CPUs modernas (caches de CPU modernas) de maneira segura por RCU. Após a RFC, no início deste ano a Oracle enviou os seus patches do Maple Tree com resultados promissores e agora foram substituídos pelos patches "v2".
Com os patches do Maple Tree v2, há muita refatoração de código, alterações de bloqueio, correções de RCU e uma variedade de outras melhorias de baixo nível.
Quanto ao impacto no desempenho dos patches do Maple Tree em sua forma atual, há vitórias consideráveis em alguns casos de teste de benchmark sintético / micro, enquanto o desempenho no mundo real parece ser estável:
Embora ainda use o mmap_sem, o desempenho parece bastante semelhante em cargas de trabalho do mundo real, embora haja variações em micro-benchmarks.
Aumento de desempenho nos seguintes micro-benchmarks em Hmean:
- wis malloc1-threads: Aumento de 13% a 840%
- wis page_fault1-threads: Aumento de 1% a 14%
- wis brk1-threads: Desconsiderar, este teste é inválido .
Diminuição de desempenho nos seguintes micro-benchmarks em Hmean:
- wis brk1-process: Diminuição de 45% devido ao RCU necessário
Mixed:
- wis pthread_mutex1-threads: + 11% a -3%
- wis signal1-threads: + 6% to -12%
- wis malloc1-process: + 9% to -18% (-18 em 2 processos, aumenta depois)
- wis page_fault3-threads: + 8% to -22%
Esses patches do Maple Tree fora do Oracle em sua forma atual somam 61 patches que acabam adicionando mais de 46,9 mil linhas de novo código (e 1,6 mil exclusões), mas a grande maioria desse novo código é código de biblioteca e, em particular, o teste do código do Maple Tree .
Até a próxima !!
Nenhum comentário:
Postar um comentário