Gibt es einen inkrementellen GC für Mono, den ich verwenden oder den Quellcode erhalten kann?

9

Ich schreibe Tools zum Erstellen von Spielen in .NET mit funktionalem Stil. Dazu benötige ich einen inkrementellen GC oder einen GC-Typ, dessen Erfassungszeiten auf etwa 1 ms begrenzt sind. Ich lese ein Papier auf einem Echtzeit-inkrementellen GC, das ein WIP für Mono ist, aber ich kann es sowieso nicht finden, seinen Code anzuschauen oder zu benutzen - Ссылка

Um zu verdeutlichen, was ich mit "inkrementeller GC" meine, teilt ein inkrementeller GC einen einzelnen Speicherbereinigungszyklus in mehrere Arbeitsschichten auf, die mit der Programmausführung verschachtelt werden können, so dass jeder Abschnitt in einer relativ begrenzten Zeitspanne verarbeitet werden kann. Die primäre Intention einer inkrementellen GC-Funktion besteht darin, Soft-Real-Time-Anwendungen zu unterstützen, indem sie auf einer relativ feinkörnigen Ebene konsistent reaktionsfähig bleiben. Inkrementelle GCs sind die "peinliche Pause", die von Mainstream-GCs wie dem Generations-GC von .NET verursacht wird. Viele Systeme, die inkrementelles GC verwenden, haben ungefähr bei 1 ms gebundene Erfassungspausen. Dies ist perfekt für Spiele, da sie ihren gesamten Zyklus innerhalb 16.667ms laufen müssen. Der .NET-Generationen-GC, OTOH, wird typische Pausen von 200 ms verursachen.

Ich möchte wirklich vermeiden, die Zeit zu verschwenden, meinen eigenen inkrementellen GC für Mono zu schreiben, also wenn mir jemand sagen könnte, welche alternativen (weichen) Echtzeitzentrischen GCs derzeit verfügbar sind, wäre das großartig. Wenn ich meinen eigenen GC schreiben muss, wäre es großartig, einen Open-Source-GC zu haben, der als gute Referenz für jemanden dient, der seinen eigenen Mono-GC von Grund auf neu schreibt.

BEARBEITEN: hinzugefügt, was mit 'inkrementeller' GC gemeint ist.

    
Bryan Edds 26.07.2012, 12:30
quelle

1 Antwort

5

Ich weiß nicht, ob es einen inkrementellen GC für Mono mit Quellen gibt - aber es gibt einen (zielgerichtet für eine oCaml-abgeleitete Sprache), der sowohl Open Source ist als auch auf High-Performance ausgerichtet ist, genannt HLVM . Der Autor, Jon Harrop, hat auch einen Blog hier mit vielen ausgezeichneten Artikeln über Müllsammlung und verwandte Technologien.

Hoffe, das hilft!

    
Ani 02.08.2012, 13:46
quelle

Tags und Links