Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

内存泄露问题 #1070

Open
boogie-ben opened this issue Jan 23, 2024 · 8 comments
Open

内存泄露问题 #1070

boogie-ben opened this issue Jan 23, 2024 · 8 comments

Comments

@boogie-ben
Copy link

boogie-ben commented Jan 23, 2024

问题描述

子应用已经设置了destory: true,都会出现这个问题。即使是手动调用unmountApp也一样

  • ESM + iframe沙箱
  • 非ESM + iframe沙箱
  • 非ESM + with沙箱

上述三种子应用配置组合都会出现这个问题,并且inline配置项、fibler配置项的true或false都对这个3种模式互相组合试过了,都会出现这个问题。

手动fork源码对unmount流程中添加了指定sandbox、iframe等属性都清空也避免不了这个问题。
估计在实现过程中的某个地方保留了对子应用的引用导致无法自动OC?

我发现这个问题是因为tdesign-icon在micro-app环境下自动请求svg精灵图时在子应用首页生成了90000个dom导致子应用在第二次挂载时已经卡死的异常。相关issues

麻烦尽快排查一下这个问题,貌似一直都存在这个现象。

相关issues

复现步骤

  • 包括官方示例,内存问题是一样的。

上传截图

1
11


2
22


3
33


4
44

复现仓库

包括官方示例,内存问题是一样的。

环境信息

  • micro-app版本:1.0.0-rc.3
  • 主应用前端框架&版本:[email protected] / vite@5
  • 子应用前端框架&版本:[email protected] / vite@4 / vue-cli
  • 构建工具&版本:vite@5
@yuuuuuyu
Copy link

现在有解决方案吗?我这也是一样的问题

@wuhaining
Copy link

同求,影响用户体验

@boogie-ben
Copy link
Author

现在有解决方案吗?我这也是一样的问题

貌似维护者一直都没处理,相关issues也不少了,我也在源码没找到原因,现在我是把所有子应用keep-alive就不会有同一个子应用占用内存翻倍的问题了,但是需要处理下子应用激活和隐藏时路由同步

@fychinesepjj
Copy link

现在有解决方案吗?我这也是一样的问题

貌似维护者一直都没处理,相关issues也不少了,我也在源码没找到原因,现在我是把所有子应用keep-alive就不会有同一个子应用占用内存翻倍的问题了,但是需要处理下子应用激活和隐藏时路由同步

我使用的是官方推荐的UMD渲染模式,同时启用 iframe 加载,基本保证keep-alive等功能正常使用。
内存泄漏情况我也测试了很多次,除了第一次加载资源内存会升高,后面都比较稳定,没有出现持续上涨情况

@jatyPeng
Copy link

jatyPeng commented Jun 6, 2024

同问。为了实现多tab,打开了很多 micro-app标签,打开一个子应用就大概50M,unmount了不会减。非常容易就上1G内存了。

@jatyPeng
Copy link

jatyPeng commented Jun 7, 2024

@bailicangdu 官方大佬,帮忙看看这个内存问题啊。没打开几个tab就 1个G内存了,关了还请不掉。是用umd的。

@xiangxinji
Copy link

俺也出现了这个问题

@shaojiankui
Copy link

现在有解决方案吗?我这也是一样的问题

貌似维护者一直都没处理,相关issues也不少了,我也在源码没找到原因,现在我是把所有子应用keep-alive就不会有同一个子应用占用内存翻倍的问题了,但是需要处理下子应用激活和隐藏时路由同步

你解决了么?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants