sakura0508
V2EX  ›  问与答

关于前端的内存泄漏问题

  •  
  •   sakura0508 · Feb 3, 2023 · 2993 views
    This topic created in 1218 days ago, the information mentioned may be changed or developed.

    memory

    关于内存泄漏

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

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

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

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

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

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

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

    可以在页面进行某些操作的时候检测一下,如果超了强制刷新什么的
    horizon
        5
    horizon  
       Feb 3, 2023
    如果你存在内存泄漏,是的。
    horizon
        6
    horizon  
       Feb 3, 2023
    Chrome 最多 4 个 G 内存
    rabbbit
        7
    rabbbit  
       Feb 3, 2023   ❤️ 1
    写个定时器,每周晚上刷新一次
    mario34
        8
    mario34  
       Mar 10, 2023
    我们的项目上线后遇到崩溃,还在持续排查中 😅
    sakura0508
        9
    sakura0508  
    OP
       Mar 13, 2023
    @mario34 #8 我们后面排查 element-plus 确实有内存泄漏的问题,所以把使用频率高的页面用 naiveui 重构了
    mario34
        10
    mario34  
       Jul 17, 2023
    @sakura0508 https://github.com/vuejs/core/issues/8790
    找到原因了,等发布更新版本吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1073 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 23:23 · PVG 07:23 · LAX 16:23 · JFK 19:23
    ♥ Do have faith in what you're doing.