Nova versão do Go usa Swiss Table para melhorar a eficiência de seus maps, mas o que é uma Swiss Table?
Salve, beleza?
Enquanto lia as notas de release do Go 1.24, notei que uma das melhorias foi alterar a antiga implementação de Map para usar Swiss Table.
Sem saber o que era uma Swiss Table, decidir estudar sobre o assunto.
Depois de ler bastante, escrevi um artigo explicando:
- A antiga implementação (Que usa Chaining)
- A nova implementação (Que usa Swiss Table, linear probing e SSE3)
- Uma possível futura implementação (baseada em um artigo acadêmico de Janeiro deste ano, que propõe melhorias a linear probing)
Se você não sabe o que significa cada um desses termos: calma, tá tudo bem.
Eu também não entendia quando os vi pela primeira vez.
Se você curte algoritmos e estruturas de dados eficientes, recomendo meu novo texto: "Go 1.24 Uses Swiss Table—What Are They?"
Se não for pedir muito, deixe seu feedback, me ajudaria bastante.
Valeu e até a próxima,
Grande abraço!