Wann tritt dot nets MemoryCache-Räumung auf? Wie kann ich die Räumung in der Konsolenanwendung simulieren? Immer wenn ich versuche, dem Speichercache Objekte hinzuzufügen, bis eine Räumung stattfindet, erhalte ich stattdessen OutofMemoryException.Dot Net MemoryCache Eviction
Antwort
Siehe MemoryCacheElement
, die das Standardverhalten steuert, wenn Sie keine Werte an die NameValueCollection config
in the constructor übergeben oder die Standardinstanz verwenden.
Durch die Standardeinstellungen der MemoryCacheElement
, überprüft es alle zwei Minuten (aber es geht schneller the closer you are to the high pressure limit). Einmal in der timer's callback wird es den Prozentsatz zum Abschneiden des MemoryCache und dann MemoryCache.Trim(Int32)
mit dem berechneten Prozentsatz aufrufen.
Eine Sache zu beachten in the percentage calculation, wenn keine Gen 2 Garbage-Sammlungen passiert sind, versucht der Cache nicht, sich selbst zu schrumpfen.
Es ist sehr wahrscheinlich, dass die Art und Weise, wie das Testkonsolenprogramm lief, den gesamten Speicher verbrauchte, bevor eine Gen 2-Sammlung stattfinden konnte oder noch im ersten 2-Minuten-Langsam-Modus war, um den Speicherdruck zu überprüfen Artikel aus.
Wenn Sie rufen eine Räumung simulieren möchte nur
MemoryCache.Default.Trim(50);
Und das wird die Hälfte des Cache aus dem Standardcache entfernt.
- 1. Remote-Dot-Net-Anwendung
- 2. dot net service Referenzauthentifizierung
- 3. Neustart Fenster App dot net
- 4. Transaktionen in "dapper-dot-net"
- 5. Redis vs MemoryCache
- 6. MemoryCache case insensitive key lookup
- 7. Verarbeiten eines zwischengespeicherten Elements über CacheItemPolicy in .NET MemoryCache
- 8. suchmaschinenfreundlichen Adressen in ASP dot NET
- 9. Benachrichtigung Mailbox wie SO in dot net
- 10. Dot Net Webformular url hide Maske
- 11. Font-Rendering-Bibliotheken für C#/dot-NET?
- 12. Microsoft Z3 Dot Net-API, Klonen Löser
- 13. Überprüfung der installierten dot net framework edition
- 14. AES 128 DOT NET und Java-Kompatibilität
- 15. Authentifizierung in dot net core Vorschau-2.0
- 16. Datenrepository mit MemoryCache
- 17. So löschen Sie MemoryCache?
- 18. Abrufen benutzerdefinierter CacheItems aus MemoryCache
- 19. Time Based Eviction Policy in Apache Ignite
- 20. C# MVC, das MemoryCache verwendet, um Sitzung
- 21. DOT Language Parser
- 22. WebMatrix statische Code-Analyse für Umbraco dot net App
- 23. Verwenden Sie Swagger in dot net Kern api Rahmen 2
- 24. Implementierung von Cache-Manager mit Dot Net Core
- 25. Dot Net Nuke: HTML-Modul Erweitern und Vertrag Icon
- 26. Serving eine asmx Anfrage auf dot net Kern
- 27. Dot net Kern auf Mac-Paket Restore-Quelle
- 28. Was sind die verfügbaren dot net core Abhängigkeiten?
- 29. Büro 365 sso saml dot net Web-Anwendung Integration
- 30. anzeigen gespeicherten Dateien in mvc mit dot net Kern
Mögliches Duplikat von [MemoryCache beachtet nicht die Speichergrenzen in der Konfiguration] (http://stackoverflow.com/questions/6895956/memorycache-does-not-obey-memory-limits-in-configuration) –