Zaimplementuj buforowanie obiektów w klasycznych wyciekach pamięci ASP

Próbowałem zaimplementować różne implementacje buforowania w klasycznej witrynie ASP, aby odciążyć bazę danych podczas dużego ruchu.

Moje podejście było następujące:

Stwórz globalny obiekt HashTable w global.asa, gdzie później przechowuję obiekty jscript w środku

<object id="SIZE_LIST" progid="System.Collections.HashTable" runat="Server" scope="Application"></object>

Daje mi to globalny obiekt HashTable, który w pewnych odstępach czasu zastępuje zawartość tabeli HashTable. Rozmiar będzie się nieznacznie różnić, ale ja jednak wykonuję wszystkie obiekty za pomocą .Remove () i .Add ().

Działa to bardzo dobrze, poza tym, że po pewnym czasie pamięć pamięci aplikacji osiąga wysoki poziom, dając irracjonalne zachowanie sesji. Będzie „zapomniał” sesje, ale nie wywoła OnSessionStart () w global.asa. Dlatego pozostawiając odwiedzających z pustą kolekcją sesji.

Czy mogę jakoś poprawić proces realokacji pamięci? Czy istnieje lepsze podejście do buforowania obiektów?

Próbowałem używać zwykłych plików tekstowych z danymi serializowanymi przez json, ale deserializacja tego jest zbyt kosztowna. Myślałem o serializacji binarnej, ale nie jestem pewien, czy jest to możliwe w klasycznej ASP.

questionAnswers(4)

yourAnswerToTheQuestion