Implementar el almacenamiento en caché de objetos en la clásica pérdida de memoria ASP
He intentado implementar diferentes implementaciones de almacenamiento en caché en un sitio ASP clásico para descargar la base de datos durante el tráfico intenso.
Mi enfoque fue este:
Cree un objeto HashTable global en global.asa donde luego almaceno objetos jscript dentro de
<object id="SIZE_LIST" progid="System.Collections.HashTable" runat="Server" scope="Application"></object>
Esto me da un objeto HashTable global que, en ciertos intervalos de tiempo, reemplaza el contenido de HashTable. El tamaño solo variará ligeramente, pero, sin embargo, hago .Remover () y .Add () todos los objetos, cada vez.
Esto funciona muy bien, además del hecho de que después de un cierto tiempo, la asignación de memoria de la aplicación llega a lo alto, dando un comportamiento irracional de las sesiones. Se "olvidará" de las sesiones, pero no invocará OnSessionStart () en global.asa. Por lo tanto, dejando a los visitantes con una colección de sesión vacía.
¿Puedo mejorar de alguna manera el proceso de reasignación de memoria? ¿Hay algún mejor enfoque para el almacenamiento en caché de objetos?
He intentado usar archivos de texto sin formato con datos serializados en json, pero la deserialización de eso es demasiado costosa. Pensé en la serialización binaria, pero no estoy seguro de si es posible incluso en ASP clásico.