Ich habe eine .NET2 C# -Web-App. Es hat eine variable Anzahl von großen, init-teuren Objekten, die über mehrere Anfragen verteilt sind, aber keinem bestimmten Benutzer zugewiesen sind. Ich muss sie daher in einer Lookup-Struktur beibehalten. Diese Objekte müssen nach Bedarf erstellt werden und sind nicht für die Lebensdauer der App erforderlich, sondern nur für die Nutzungsdauer.großer Objekt-Cache
Plus ein bisschen.
Die Speicherleckweise, dies zu tun, ist ein einfaches Wörterbuch, die Speicher-sichere Möglichkeit, dies zu tun, ist ein schwach referenziertes Wörterbuch, aber das Problem ist, dass der GC einfach zu verdammt schnell ist. Realistisch gesehen ist das vielleicht kein Problem, denn der Verkehr zu den Objekten sollte so sein, dass sie am Leben bleiben, ohne dass sie sich zu viel regenerieren müssen, aber idealerweise möchte ich, dass sie auch verkleinert werden.
Gibt es eine Art Mittelweglösung, über die ich die Objekte nicht für einen bestimmten Zeitraum sicher vor dem GC verstecke, sondern auch, dass sie am Ende dieser Zeit gesammelt werden können, vorzugsweise, wo dieser Zeitzähler jedes Mal zurückgesetzt wird, wenn sie ähnlich wie Session-Token verwendet werden?
Genau was das OP braucht, glaube ich. – configurator
bang on - jetzt habe ich nur das Problem zu spähen ohne zu berühren, aber das ist für eine andere Frage ... – annakata