V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sakura0508
V2EX  ›  问与答

关于前端的内存泄漏问题

  •  
  •   sakura0508 · 2023-02-03 11:43:13 +08:00 · 1924 次点击
    这是一个创建于 667 天前的主题,其中的信息可能已经有所发展或是发生改变。

    memory

    关于内存泄漏

    OP 参与开发的网页(vue3 + element plus)因为业务需要,24*7 有人值班操作,所以近期出现了用户在长期不刷新网页的情况下出现了网页崩溃的情况

    在排查过程中发现似乎是 element plus 的组件存在内存泄漏的问题

    尝试在官网复现,打开组件页,通过浏览器的任务管理器,能看到初始占用不到 100M element-plus

    在我来回点击组件文档几十次后回到首个组件页此时内存占用超过 1G element-plus1

    在等待垃圾回收后内存将至 400m+,随后又等待了 5 分钟确认内存不会在继续下降了 element-plus2

    所以是否只要操作的次数够多,内存就会持续上涨直到突破浏览器内存限制导致网页崩溃

    10 条回复    2023-07-17 09:45:41 +08:00
    CraxClive
        1
    CraxClive  
       2023-02-03 13:21:42 +08:00 via iPhone
    是的,建议学习一下如何排查前端页面内存泄漏
    CraxClive
        2
    CraxClive  
       2023-02-03 13:25:00 +08:00 via iPhone
    elementplus 的组件展示页有内存泄漏问题不代表 elementplus 的组件有内存泄漏问题,具体还是要看实际的网页来判断
    jones2000
        3
    jones2000  
       2023-02-03 13:54:37 +08:00
    1. 机器加内存, 比如加到 128G , 够开一个星期的就可以。
    2. 定期重启程序, 比如每周 1 次重启,
    dingwen07
        4
    dingwen07  
       2023-02-03 15:01:33 +08:00 via iPhone
    Chrome 可以用 window.performance.memory 获取内存

    可以在页面进行某些操作的时候检测一下,如果超了强制刷新什么的
    horizon
        5
    horizon  
       2023-02-03 16:49:35 +08:00
    如果你存在内存泄漏,是的。
    horizon
        6
    horizon  
       2023-02-03 16:49:58 +08:00
    Chrome 最多 4 个 G 内存
    rabbbit
        7
    rabbbit  
       2023-02-03 16:58:03 +08:00   ❤️ 1
    写个定时器,每周晚上刷新一次
    mario34
        8
    mario34  
       2023-03-10 23:39:55 +08:00
    我们的项目上线后遇到崩溃,还在持续排查中 😅
    sakura0508
        9
    sakura0508  
    OP
       2023-03-13 17:49:20 +08:00
    @mario34 #8 我们后面排查 element-plus 确实有内存泄漏的问题,所以把使用频率高的页面用 naiveui 重构了
    mario34
        10
    mario34  
       2023-07-17 09:45:41 +08:00
    @sakura0508 https://github.com/vuejs/core/issues/8790
    找到原因了,等发布更新版本吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2708 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 11:26 · PVG 19:26 · LAX 03:26 · JFK 06:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.