Go 1.24: sync.Map optimizado con nueva estructura

Fuentes: Go's sync.Map now uses a HashTrieMap for improved concurrency

A partir de Go 1.24, la implementación interna de sync.Map en la biblioteca estándar de Go ha sido rediseñada para mejorar el rendimiento de la concurrencia, utilizando ahora una estructura llamada HashTrieMap. Esta estructura combina una tabla hash con un trie, permitiendo lecturas sin bloqueo (lock-free) a través de la navegación atómica de nodos y utilizando un mutex por nodo para las escrituras, afectando solo una pequeña parte de la estructura. Un análisis comparativo realizado por el autor de la biblioteca xsync ha evaluado sync.Map junto con otras implementaciones concurrentes de mapas hash, incluyendo cornelk/hashmap, alphadose/haxmap y orcaman/concurrent-map. Los resultados muestran que xsync.Map generalmente supera a sync.Map en escenarios con alta concurrencia y escrituras frecuentes, aunque sync.Map se destaca en la escalabilidad de lectura. orcaman/concurrent-map se caracteriza por no tener asignaciones de memoria, pero su rendimiento se ve limitado por su diseño de shards fijos. El estudio, realizado en una máquina AMD Ryzen 9 con Go 1.26.0, proporciona datos detallados sobre el rendimiento de lectura, escritura y operaciones bajo contención, así como el uso de memoria, permitiendo a los desarrolladores elegir la implementación más adecuada para sus necesidades.