Geschwindigkeit CTP2 Serious Speicher Bug
-
08-07-2019 - |
Frage
Wenn Sie eine Instanz des Cachefactory erstellen und dann verwenden Sie es nicht mehr die Erinnerung, dass bei der Erstellung des Objekts verwendet wurde, ist nicht geklärt. Dies wird einen wesentlichen Einfluss auf alle Web-Anwendungen oder Szenarien, wo ein cachfactory möglicherweise mehrere Male erstellt werden. Die Symptome dieser werden ungewöhnlich hohe Speicher eine des Prozess verwenden und in IIS dies höchstwahrscheinlich zu Ihrer Anwendung, da sie öfter mit seinem zugewiesenen Speicher schneller überrannt zu recyceln ist.
Der folgende Code wird eine Steigerung von etwa 500MB zeigt ja ich Megabytes Speichernutzung bedeuten!
duplizieren, um den folgenden Code in Ihre Anwendung setzen:
Dim CacheFactory1 As CacheFactory = New CacheFactory()
For i As Int32 = 1 To 1 * (10 ^ 4)
CacheFactory1 = New CacheFactory()
CacheFactory1 = Nothing
Next
Es gibt nur zwei Lösungen für diese.
- Velocity Team behebt den Fehler (und ich bin sicher, sie werden)
- Sie müssen die gleiche Cachefactory-Objekt auf einem statischen Methode in Ihrer Anwendung verwenden, und es jedes Mal, wenn Sie den Cache verwenden möchten, verweisen. (Dies funktioniert aber nicht optimal ist meiner Meinung nach).
Ich habe auch eine cachingscope, die verwendet werden können, Ihre Caching-Methoden und veröffentlichen diese auf Codeplex bald zu wickeln. Sie können es wickeln um Ihre Caching-Methoden wie eine Transaktionsbereich und es wird die Verriegelung und Verbindung für Sie verwalten.
Lösung 2
Ich habe für die Lösung dieses Problems einen Umfang Anbieter bauen. Hier können Sie den Code erhalten.
Andere Tipps
Also, wo ist die Frage? Sie sollten die Fehler-Datei, und dies nicht hier posten, wie das Velocity-Team mehr als wahrscheinlich Überwachung Microsoft Connect für Fehler ist.