首页 > 解决方案 > Vuex - 每 5 秒轮询大量数据时的内存泄漏/JS 堆大小

问题描述

我有一个使用 Vuex 进行商店管理的 Vue 应用程序。我在根目录有多个存储模块,每 5 秒,我拉出一大块数据,并在存储突变的帮助下将其推送到存储状态。问题是每次状态发生变化时堆大小都会增加。它一直在增长,直到浏览器内存不足。

我的商店如下所示。

const store = new Vuex.Store({
  modules: {
   moduleA,
   moduleB
  }
})

标签: javascriptvue.jsmemory-leaksvuexheap-memory

解决方案


整个页面状态(包括 DOM 和 Javascript/Vuex 数据)都将保留在内存中,直到您在 SPA 中重新加载整个页面(如果您使用的是 vue-router,就会出现这种情况)。

在 SPA 中,您需要确保在不再需要大型对象和数组时删除对它们的任何引用(例如设置为 null),以便垃圾收集器可以释放内存。

在内存堆用完之前删除或释放不再需要的对象和变量很重要。


推荐阅读