Implementar cache de objetos em vazamentos de memória ASP clássicos
Eu tentei implementar diferentes implementações de armazenamento em cache em um site ASP clássico para descarregar o banco de dados durante o tráfego pesado.
Minha abordagem foi esta:
Crie um objeto global HashTable em global.asa, onde mais tarde eu armazeno objetos jscript dentro
<object id="SIZE_LIST" progid="System.Collections.HashTable" runat="Server" scope="Application"></object>
Isso me dá um objeto HashTable global que, em determinados intervalos de tempo, substitui o conteúdo do HashTable. O tamanho só irá variar um pouco, mas eu faço .Remove () e .Add () todos os objetos, cada vez.
Isso funciona muito bem, além do fato de que após um certo tempo, a alocação de memória do aplicativo chega ao máximo, dando um comportamento irracional das sessões. Ele irá "esquecer" as sessões, mas não invocar OnSessionStart () em global.asa. Por isso, deixando os visitantes com uma coleção de sessão vazia.
Posso de alguma forma melhorar o processo de realocação de memória? Existe alguma abordagem melhor para o armazenamento em cache de objetos?
Eu tentei usar arquivos de texto simples com dados serializados por json, mas a desserialização disso é para muita sobrecarga. Pensei em serialização binária, mas não tenho certeza se é possível mesmo em ASP clássico.