2008-08-22 16 views
1

Dies ist hauptsächlich auf Desktop-Anwendungsentwickler ausgerichtet.
Wie entwerfe ich einen Caching-Block, der gut mit dem GC zusammenspielt?
Wie kann ich dem GC mitteilen, dass ich gerade einen Cache-Sweep durchgeführt habe und es an der Zeit ist, einen GC zu erstellen?
Wie erhalte ich eine genaue Messung, wann es Zeit für einen Cache-Sweep ist?Caching-Schemata für verwaltete Sprachen

Gibt es vorgefertigte Caching-Schemata, von denen ich einige Ideen ausleihen könnte?

Antwort

1

Während ich natürlich nicht mit den Besonderheiten Ihrer Anwendung sprechen kann, sollten Sie in den meisten Fällen Ihre Caching-Implementierung nicht mit irgendeiner angenommenen Erwartung verknüpfen, wie der GC funktioniert. Wie Stu erwähnt, wird das Aufrufen von GC.Collect() eine Sammlung erzwingen (mit Überladungen für eine bestimmte Generation), aber in den meisten Fällen wird dies zu schlechteren Ergebnissen führen, als wenn der GC sich selbst verwaltet.

Wenn Sie nach einigen echten Leistungstests feststellen, dass Sie mit dem GC interagieren müssen, achten Sie darauf, dass Sie die verschiedenen Arten von GCs berücksichtigen, die das Framework derzeit besitzt (siehe here für weitere Informationen).