Pergunta

Eu tenho um JSP que mostra dados de muitos tipos de agregação. Por exemplo, por mercado, por categoria, por tipo de servidor, etc. O que eu tenho são os dados do editor e do tempo. O editor é o nível mais granular de dados no meu caso.

Agora, esses dados mudam a cada 1/2 por hora. O número de dados por meia hora é de quase 5k e qualquer pessoa de cada vez observa os dados por 4 horas a 24 horas. Nesses casos, quando o servidor é carregado, o tempo de carregamento JSP aumenta rapidamente. Tentei usar e o cache da LRU com o LinkedHashmap, mas essa não parece a solução ideal, pois o desempenho ainda não é bom.

Qualquer idéia sobre qual estrutura de dados usar seria apreciada.

Foi útil?

Solução

Você poderia usar uma ferramenta de cache como Ehcache.

Outras dicas

O desempenho foi pobre, ou você teve uma baixa taxa de acerto? Às vezes, manter um cache é mais difícil do que apenas consultar seus dados diretamente. Isto é especialmente verdade com baixas taxas de acerto.

Se for preciso 10ms para servir um acerto de cache e 50ms para servir uma falta de cache, mais 20ms para armazenar o acerto de cache, você estará ganhando apenas 20ms para cada acerto de cache, então 200 ms por 10 hits. Isso parece ótimo, mas quando você adiciona expiração e invalidação, sem mencionar a invalidação do cache, de repente você está em um ponto em que leva pelo menos 10 acertos para que cada falta para ter o cache sejam úteis.

O cache é ótimo para mobs flash, mas para ferramentas ad-hoc, muito tempo pode desperdiçar tantos recursos quanto ganha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top