Es gibt einen sehr kniffligen Aspekt bei allen Garbage Collectors, der in einigen Beschreibungen möglicherweise vertuscht wird, nämlich "Vollständiger Scan" oder "Vollständiges Sammeln". In regelmäßigen Abständen, in zufälligen Abständen, müssen sie alle Objekte scannen. Generationen von Sammlern sind besser in der Lage, den vollständigen Scan zu verschieben und seine Dauer zu minimieren, dies ist jedoch weiterhin erforderlich.
Der Generationssammler konzentriert sich auf das, was manchmal als "Kinderzimmer" bezeichnet wird, muss sich aber schließlich / unweigerlich auf den "älteren" Generationsraum konzentrieren, wodurch ein vollständiger Speicher-Scan durchgeführt wird.
Dieser vollständige Scan ist mit fast allen Speicher-Caching- und (insbesondere!) Virtualisierungsschemata in dem Sinne nicht kompatibel, dass in diesem Fall fast alle Speicher-Caching- / Virtualisierungsschemata bei einer Leistungsverbesserung schlecht ausfallen (müssen).
Die zentrale Antwort auf diese Frage lautet also, wie oft der vollständige Scan ausgelöst wird und wie "schlecht" seine Auswirkung ist, wenn er auftritt und ob er toleriert werden kann. Dies führt zu einer eher anwendungsabhängigen Eigenschaft / Frage.
Mit anderen Worten, für "die meisten" Vorgänge des Sammlers wird wahrscheinlich ein Cache hilfreich sein (der Cache und der "junge" Kindergartenbereich überlappen sich im Allgemeinen!), Aber es gibt einen periodischen, intermittierenden, eventuellen, unvermeidlichen, schweren, Vielleicht sogar ein "massiver" Leistungsanstieg, wenn der Speicherplatz der "alten Generation" voll ist und die "Trefferrate" des Caches sehr schlecht wird, da viele Objekte außerhalb desselben alle in einer engen Schleife durch den vollen Speicher abgerufen werden Scan- / Sammelzyklus. Mit anderen Worten, eine unausweichliche periodische Diskontinuität (wenn statistische Schätzungen / Durchschnitte / Leistungstrends usw. irreführend und nicht anwendbar sind).
Was jetzt auftaucht, sind einige neue Erfassungssysteme, die so konzipiert sind, dass sie mit den zugrunde liegenden Speicherverwaltungssystemen (Caching / Virtualisierung) verzahnt sind. Es scheint, dass historische Ansätze, die die getrennten Systeme der Speichererfassung, Zwischenspeicherung und Virtualisierung vollständig entkoppeln, nicht so gut funktionieren wie Ansätze, die alle drei Aspekte miteinander kombinieren / integrieren / ansprechen.
Siehe zB Cache-fähige Garbage Collection von Zhou und Demsky.