Tencent / wujie

极致的微前端框架
https://wujie-micro.github.io/doc/
Other
4.05k stars 580 forks source link

内存占用太夸张了,一晚上翻了一倍 #881

Open gyt95 opened 1 month ago

gyt95 commented 1 month ago

描述bug 一个集成了几十个子应用的系统,打开了8个子应用,然后关闭了3个。不做任何操作,当时看只有400+M,放几个钟1.5G,过了一晚,第二天占用率高达3.5G。。。很多用户反映系统越用越卡。

如何复现 在main.ts时通过遍历子应用地址数组,调用setupApp

主要代码感觉是这个main.ts

import WujieVue from 'wujie-vue3'
import '@next/core/dist/style.css'
import App from './App.vue'
import router from './router'
import hostMap from './hostMap'
import { MICRO_APP_DATA } from './microApp.json'

const app = createApp(App)

const pinia = createPinia()

const { setupApp } = WujieVue

export const props = {
  jump: (name: string) => {
    console.log('jump', name)
    router.push({ name })
  },
}

// setupApp({ name: "唯一id", url: "子应用地址", exec: true, el: "容器", sync: true })

// 特殊处理的模块
const PRINT_LIST = [
  'xxx',
  'yyy',
]

const setupAllApp = () => {
  for (const k in MICRO_APP_DATA) {
    let baseObj = {}
    if (PRINT_LIST.includes(k)) {
      baseObj = {
        jsAfterLoaders: [
          // 如果插入一个外联脚本
          { src: 'xxxxx.js' },
          // 如果插入一个内联脚本
          // 执行一个回调,打印子应用名字
          {
            callback(appWindow: any) {
              console.log('js-after-loader-callback!!', appWindow.__WUJIE.id)
            },
          },
        ],
      }
    }
    setupApp({
      name: k,
      url: hostMap(MICRO_APP_DATA[k as keyof typeof MICRO_APP_DATA].url),
      exec: true,
      alive: true,
      props,
      plugins: [baseObj],
    })
  }
}
setupAllApp()

// @ts-ignore
app.use(router).use(pinia).use(WujieVue).mount('#app')

错误截图 如果有可以将截图带上

打开2小时 f33e9dca051036f8071c75831024468

打开10小时 530afb2893e8a49ae1e143746029475

控制台报错 87bfda063755820f2bdf6cf2a43a7e1

最小复现仓库或者地址 重要!!!,请尽量给出复现仓库,这样能极大加快bug解决速度

难道我还要把整个业务项目发上来???

xinyufyj commented 1 month ago

不做任何操作,内存也会增长吗?

Naeemo commented 1 month ago

如果不用无界,直接用 iframe 打开同样的应用,放相同的时间,内存占用也会上涨吗?

zhubo2021 commented 1 month ago

正常挂着怎么会报错呢

2657086519 commented 1 month ago

确实 内存爆炸

Lemonreds commented 1 week ago

业务代码没问题吗?