vuejs / vuex

🗃️ Centralized State Management for Vue.js.
https://vuex.vuejs.org
MIT License
28.4k stars 9.57k forks source link

vuex3.1.1版本存在内存泄漏的问题 #1590

Closed juanzi957 closed 4 years ago

juanzi957 commented 5 years ago

Version

3.1.1

Reproduction link

https://forum.vuejs.org/t/vux/66236

Steps to reproduce

最近我在用vue-cli3 vuex websocket构建一个项目,发现vuex存在内存泄漏的问题,但是不知道怎么解决,请大家帮忙看下,步骤如下: 1.用vue-cli3创建一个空项目; 2.服务端用node搭建一个简单的每隔50ms用websocket给客户端发消息的服务; 3.客户端每次接收到服务端发送过来的数据都通过vuex来管理,每次都commit(或者dispatch我也试过,效果一样)到vuex管理去, 4.运行十几分钟看不出内存泄漏的问题,运行个把小时就能看出一点,JS栈内存一直在增加,运行一晚上之后,浏览器完全崩溃了; 5.这是服务端发送一个比较小的数据,发送一个很大的数据浏览器崩溃的就更快。 下面是我的数据和代码: 服务端发送的数据: var abc = { ‘aaa’: 111, ‘aab’: 1111, ‘aac’: 11111, ‘aad’: 111111, ‘aae’: 1111111, ‘aaf’: 11111111, ‘aag’: 111111111, ‘aah’: 1111111111, ‘aai’: 11111111111 }

客户端:用VUE-CLI3搭建的空项目,只修改过的Home.vue中的代码,一下代码放在mounted中: const webSocketUrl = ‘ws://127.0.0.1:8000’ const ws = new WebSocket(webSocketUrl) const _this = this ws.onmessage = function (ev) { _this.$store.dispatch(‘setModulesRes’, JSON.parse(ev.data)) } …

What is expected?

不管是以多少频率每秒去更新vuex中的数据,都不应该导致内存泄漏引起浏览器奔溃的情况。

What is actually happening?

不管任何时候,内存泄漏都是一个很严重的问题,当遇到需要不断的时时更新vuex中数据的项目,就不能用vue构建了。

tangmingkao commented 5 years ago

有解决这个问题么

:octocat: From gitme iOS

kiaking commented 4 years ago

Is this issue still active? Can't understand the issue so 😅

kiaking commented 4 years ago

Closing due to inactivity. Please open another issue if there's anything 👍