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.

  1. Velocity Team behebt den Fehler (und ich bin sicher, sie werden)
  2. 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.

War es hilfreich?

Lösung 2

Ich habe für die Lösung dieses Problems einen Umfang Anbieter bauen. Hier können Sie den Code erhalten.

http://www.codeplex.com/CacheScope

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top