Ich übe die Verwendung von unveränderlichen Objekten in C ++. Mein persönliches Ziel ist die Darstellung eines allgemeinen Objektgraphen (in Heap) mit einer Abfolge unveränderlicher Graphen.
Das Erstellen des Diagramms mit mehreren Versionen selbst ist nicht allzu schwierig. Das Problem ist die Leistung. Für die Brute-Force-Versionierung ist eine vollständige Kopie des Diagramms erforderlich. Dies war nicht akzeptabel.
Ich habe versucht, unveränderte Knoten zu teilen. Aber in diesem Fall habe ich ein neues Problem. Verweise. Der Verweis auf ein anderes Objekt muss im gesamten Diagramm aktualisiert werden. Dazu muss jedes Mal, wenn ich eine neue Grafikversion erhalte, alle Knoten besucht werden. Und dies mutiert die Knoten mit Referenzen, so dass sie auch abgeleitet werden sollten (durch Kopieren). Leistung ist nicht viel besser als Brute-Force-Kopieren.
Soweit ich mir vorstellen kann, gibt es keinen wirklich effizienten Weg, eine Mutation eines Objektgraphen mit unveränderlichen Zuständen darzustellen. Also bitte ich um eine Idee dazu.
Ist es möglich, eine Mutation eines Objektgraphen mit unveränderlichem Zustand effizient darzustellen?