3

Zusätzlich zu Mark-and-Sweep führen die Garbage Collectors für .NET und Java eine Komprimierungsphase durch, um die Speicherfragmentierung zu reduzieren. Ich kann keine Dokumentation zu einer Komprimierungs-/Defragmentierungsphase für den Flash 9-Garbage Collector finden. Hat Flash keine Komprimierungsphase?Flash/ActionScript-Speicherfragmentierung

Antwort

2

Nun, ich war ziemlich beschäftigt mit Speicherverwaltungsproblemen und ich habe mit Adobe-Ingenieuren darüber gesprochen, und ich habe nie von einer Defragphase gehört. Auf der anderen Seite scheint es ziemlich unwahrscheinlich, dass sie es weglassen würden, und ich habe sicherlich gesehen, dass mein Gesamtspeicherverbrauch nach einem GC gesunken ist, in der Art, wie man es erwarten würde, wenn es eine Defragmentierungsphase gäbe. Insgesamt würde ich sagen, dass es wahrscheinlich eine solche Phase gibt.

Aber was ich ziemlich zuversichtlich bin, ist, dass ich glaube nicht, dass es offizielle offizielle Dokumente gibt. Ich habe jedenfalls nie etwas gesehen. Wenn jemand anderes weiß, werde ich glücklich zurücktreten, aber nur für den Fall, dass Sie keine anderen Antworten bekommen.

3

Die virtuelle Maschine für AS3, die Adobe in Flash verwendet, ist Open-Source.

http://www.mozilla.org/projects/tamarin/

Der Speichermanager für die virtuelle Maschine, die so genannte MMgc, wird in diesem Quellcode enthalten.

MMgc bietet einen nicht beweglichen Kollektor; Einmal zugewiesen, werden Objekte vom Kollektor nicht verschoben. Dies bedeutet, dass es keine Verdichtungsphase gibt.

Weitere Dokumentation auf MMgc finden Sie hier:

http://hg.mozilla.org/tamarin-redux/file/tip/doc/mmgc

:

https://developer.mozilla.org/en/mmgc

Einige der neueren Arbeiten ist innerhalb des Quell-Repository des Dokumentationsverzeichnis dokumentiert