Go: rychlost přístupu k položce v map

V podstatě asi každý modernější jazyk nabízí nějakou možnost práce s hash tabulkami. Má ji Python, JavaScript, TypeScript a má ji i Golang.

Příklad využití takové datové struktůry se nabízí: máte klíčů, pod kterým z hash tabulky získáváte nějakou datovou strukturu, kterou může být cokoliv.

Performance otázkou pak zůstává, jak rychlý je přístup skrze klíče do hash tabulky je.

Napsal jsem si jednoduchý test, který pro jednoduchost vytovří hash table s 20.000.000 položkami, kde klíčem je 10 znakový string, pod kterým je ten stejný 10 znakový string. Měřil jsem pak rychlost přístupu k random klíči ve slovníku.

Prvním nápadem optimalizace rychlosti přístupu pak bylo setřízení hash tabulky podle klíče. Nad setřízeným hash tablem jsem pak opětovně měřil rychlost přístupu ke stejnému klíči.

A tady je výsledek:

Resume

Bez ohledu na délku doby setřízení hash table podle klíče, jsem byl překvapen jak velký rozdíl byl v době přístupu ke stejnému klíči nad původní a setřízenou datovou struktůrou.

Vím, že furt jsem ve stejném řádu, nicméně pokud rozdíl tu je.

Publikováno v Go