Kürzlich habe ich ein Problem gelöst, bei dem eine große Anzahl von Schlüsselwerten aktualisiert wurde.Speicherstatus in Elixir
Natürlich dachte ich über eine Map
, mit Operationen wie Map.put/3
.
dies schien jedoch unzureichend, die unveränderliche Natur der Datenstrukturen in Elixir gegeben:
iex> m = Map.put(%{}, :a, 1)
%{a: 1}
iex> Map.put(m, :b, 2)
%{a: 1, b: 2}
iex> m
%{a: 1}
Ich löste dann das Problem durch den Zustand der Map
in einem GenServer
halten und es mit handle_cast/3
Anrufen zu aktualisieren.
Allgemein, ist dies der richtige Ansatz, oder war das hier zu viel?