Rozumiem, że wcześniejsza wersja Roslyn zaimplementowała niezmienne drzewa, jak opisano w this excellent blog post przez Eric Lippert. Jednak ten wpis kończy się na:W jaki sposób wydana wersja Roslyn wprowadza niezmienne drzewa?
"Koszt jest taki, że ten system jest złożony i może pochłaniać dużo pamięci, jeśli" czerwona "fasada staje się duża. Obecnie przeprowadzamy eksperymenty, aby sprawdzić, czy możemy zmniejszyć niektóre z nich. koszty bez utraty korzyści. "
Chciałbym zapytać, jaki był wynik wersji Release. Zacząłem badać Roslyn sources, ale kod jest dość skomplikowany do naśladowania.
Interesują mnie niskie wyniki projektowe dotyczące wyżej wymienionych kosztów.
- Jaki jest koszt pojedynczej edycji pod względem czerwonych/zielonych węzłów?
- Jakie optymalizacje zostały wykonane dla innych operacji (np. Usuwanie, cofanie)?
Myślę, że łatwiej jest śledzić, używając tego: http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Syntax/SyntaxNode.cs,849dc6029695ef7b – MarcinJuraszek
Zobacz również [niezmienne kolekcje BCL] (http://channel9.msdn.com/posts/Erik-Meijer-Immo-Landwerth-and-Andrew-Arnott-Immutable-Collections- for-NET), które zainspirowały Roslyn Red/Green trees. – DaveShaw
@DaveShaw, rzuciłem okiem na link i obejrzę wideo. Jednak strona opisu nie wspomina o drzewach, ale wspomina o wielu innych typach kolekcji. – bright