- Servidores DNS frequentemente precisam converter nomes de domínio para minúsculas
- O BIND precisa de um pouco mais de trabalho porque deve preservar os valores DNS originais
- Foi decidido aplicar SWAR ao
tolower()
→ SIMD within a register: executar em paralelo vários dados dentro de um registrador com uma única instrução
- Foi criada a função
tolower8, que processa 8 caracteres ASCII armazenados em um uint64_t
→ Para a explicação linha a linha do código C implementado, veja o texto original
- Desempenho
0.098 ms memmove() copy
0.399 ms tolower8() copy
1.817 ms tolower() copy
0.280 ms tolower8() compare
2.090 ms tolower() compare
Ainda não há comentários.