In den letzten 10 Jahren, in denen ich über Java und/oder Garbage Collection diskutiert habe, war die einzige Leistungseinbuße, die ich nicht verteidigen konnte, die Tatsache, dass der Garbage-Collection-Algorithmus mehr oder weniger bricht, wenn er in einer Paged-Memory-Architektur läuft und Teile des Heaps ausgelagert werden.
Unix-Systeme (und insbesondere Linux) paginieren Speicher, der eine Zeit lang nicht benutzt wurde, aggressiv aus, und während das für eine durchschnittliche undichte C-Anwendung gut ist, wird die Leistung von Java in Situationen mit wenig Speicher beeinträchtigt.
Ich weiß, dass die beste Praxis darin besteht, den maximalen Heap kleiner zu halten als den physischen Speicher. (Oder Sie werden sehen, wie Ihre Anwendung zu Tode swappt), aber die Idee - zumindest in der Unix-Welt - ist, dass der Speicher besser für Dateisystem-Caches usw. verwendet werden könnte.
Meine Frage ist: Gibt es irgendwelche Paging (bewusst) Garbage Collecting Algorithmen?