Vyvážená BST je výhodné, když je potřeba chránit datovou strukturu z latence hrotů a hash kolize útoky.
První z nich se stane, když strukturu pole opěradlem roste dostane změně velikosti, druhý je nevyhnutelný vlastnost přerušovacího algoritmu jako výstupek z nekonečného prostoru do omezeného rozsahu celé číslo.
Dalším problémem v .NET je, že neexistuje LOH, a s dostatečně velkým slovníkem narazíte na fragmentaci LOH. V tomto případě můžete použít BST, platí cenu větších algoritmického třídy složitosti.
Stručně řečeno, s BST couval přidělení haldy dostanete nejhorším případě O (log (N)) času, s Hashtable dostanete O (n) nejhorší čas.
BST přichází v ceně O (log (N)) průměrná doba, horší vyrovnávací lokality a další přidělení haldy, ale má latenci záruky a je chráněna před slovníkových útoků a fragmentace paměti.
Stojí za zmínku, že BST je rovněž předmětem fragmentace paměti na jiných platformách, a to pomocí stlačování garbage collector.
Pokud jde o velikost paměti, třída .NET Dictionary`2 je více paměti efektivnější, protože to ukládá data jako off-haldy propojeného seznamu, který jen ukládá hodnoty a informace o offsetu. BST má pro uložení záhlaví objekt (jako každý uzel je instance třídy na haldě), dva ukazatele a některé údaje rozšířený strom pro vyvážené stromy. Například, červeno-černý strom bude potřebovat boolean vykládat tak, že barva (červená nebo černá). To je minimálně 6 stroje slova, pokud se nepletu. Takže, každý uzel v červeno-černém strom na 64-bitovém systému je minimálně:
3 slova pro hlavičkových = 24 bytů 2 slova pro podřízené ukazatele = 16 bytů 1 slovo pro barvu = 8 bajtů alespoň 1 slovo pro hodnotu 8+ bajtů = 24 + 16 + 8 + 8 = 56 bajtů (+8 bytů v případě, že strom používá ukazatel nadřazeného uzlu).
Ve stejné době, minimální velikost vstupu slovníku by bylo jen 16 bajtů.