Parece haver um vazamento de memória no arquivo store.js, pois quando os usuários navegam por diferentes tópicos, o _identityMap parece crescer rapidamente a cada solicitação RESTful. Sem uma lógica de limpeza adequada, o mapa esgotará a memória com grandes heaps de JS.
Talvez adicionar uma função pruneMap ao store.js, com algoritmo FIFO para remover os mapas mais antigos, seja suficiente?
Além disso, a variável const MAX_ITEMS_PER_TYPE = 500; pode ser discutida para estabelecer um equilíbrio entre cache e armazenamento de memória.
Os passos para reproduzir são os seguintes: o usuário pula de um tópico para outro usando o “sugerido/relacionado” sob o tópico várias vezes sem atualizar a página, e o tamanho do heap de js se acumulará dos 100MB originais para cerca de 500MB no meu teste, se os tópicos visitados forem suficientes (especialmente para tópicos com muitas postagens). E retornar à página inicial não liberará essa parte da memória ocupada.
Este tamanho de heap de js pode ser visto no console-desempenho do navegador, e o consumo de memória pode ser visto no gerenciador de processos do navegador.
Eu anexei um vídeo disso no PR, apenas mostrando o problema (cerca de 3 minutos, quando se usa a mesma página por mais horas, a situação piorará)
E também adicionar um ponto de interrupção aqui mostrará a quantidade crescente de itens em _identityMap