网页内存占用高如何优化 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lulinchuanllc
V2EX    前端开发

网页内存占用高如何优化

  •  
  •   lulinchuanllc 2024-04-19 09:53:50 +08:00 3120 次点击
    这是一个创建于 620 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题所述,目前公司有一个 vue2 后台管理项目,代码量非常大,功能也非常多,大部分页面是列表+详情的组合,现在客户反馈打开我们的网页,开的 tab 多了之后,浏览器容易闪退,我自己试了下,内存占用可以到七八百兆。 目前看了一些内存优化的文章和分享,但是里面的垃圾代码是在太多,有大佬做过类似的优化或者看过类似的文章吗,或者提供下思路

    第 1 条附言    2024-04-19 18:04:19 +08:00
    感谢各位的积极指导,抱歉未能一一回复,我们项目是有 keep-alive 缓存的,所以比如开了 A 列表,a 详情,B 列表,b 详情这种情况之后,单个浏览器 tab 页的内存就能占用到 7-800 兆,目前是垃圾代码太多了,几百个 vue 文件,想优化也无从下手的感觉
    18 条回复    2024-04-19 18:05:05 +08:00
    8355
        1
    8355  
       2024-04-19 11:11:00 +08:00   2
    公司为用户电脑增加内存,这是最低成本方案。
    nitmali
        2
    nitmali  
       2024-04-19 11:40:58 +08:00
    检查一下是否有内存泄漏的因素 闭包 定时器 乱 console.log 等等
    检查一下是否有大量操作 DOM
    检查是否有递归或者一次性生成大量数据什么的
    rekulas
        3
    rekulas  
       2024-04-19 11:43:31 +08:00
    加内存只是吃止痛药,还是要找到原因才行
    可以考虑排查下是否存在内存泄漏的代码 https://facebook.github.io/memlab/
    wxf666
        4
    wxf666  
       2024-04-19 11:50:11 +08:00
    什么浏览器,七八百兆就崩啊?我这常年几个 G 呢。。

    不会是一个页面就七八百兆吧?抖音客户端,也是 Electron ,都才四五百兆啊。。

    cloverzrg2
        5
    cloverzrg2  
       2024-04-19 11:53:16 +08:00
    @wxf666 #4 都说了网页优化,那就是一个 Tab 的内存占用,肯定不是整个浏览器几十个 Tab 页面的内存占用啊
    qjbcnrs
        6
    qjbcnrs  
       2024-04-19 11:54:21 +08:00
    @wxf666 #4 我做工厂 erp 的,工厂还不少 2G ram 的机器。
    rekulas
        7
    rekulas  
       2024-04-19 11:57:05 +08:00
    @wxf666 应该是指单 tab 几百兆 不是浏览器几百
    tab 几大百是有点高了,大概率泄漏了,毕竟打开淘宝刷一会也才 2 300MB
    musi
        8
    musi  
       2024-04-19 13:15:27 +08:00
    @rekulas #7 c 端的业务和 b 端不能直接比好吧。。。
    TV1X6Na04Q52A20X
        9
    TV1X6Na04Q52A20X  
       2024-04-19 13:20:13 +08:00
    系统有做前端拆分么,如果拆过试试虚拟列表(延迟加载)。可以用 Lighthouse 分析下哪个环节的问题....
    geekvcn
        10
    geekvcn  
       2024-04-19 13:30:49 +08:00 via Android
    让你客户把虚拟内存调大
    br_wang
        11
    br_wang  
       2024-04-19 13:36:54 +08:00
    看看有没有 Pb 之类的需要在浏览器环境以字符串 eval 成对应方法的类库,初始化是否正确。
    以前遇到过代码按次新建 Pb 实例,对应方法字符串在内存多次保存的情况。

    还有一些 chrome 的问题造成的内存泄漏,比如: https://github.com/vuejs/core/issues/5363
    当然还有一些 vue 本身的问题造成的,比如: https://github.com/vuejs/core/issues/5256
    wangtian2020
        12
    wangtian2020  
       2024-04-19 13:38:44 +08:00
    组件没有销毁?虚拟列表?
    IvanLi127
        13
    IvanLi127  
       2024-04-19 13:49:54 +08:00
    本地复现出问题了吗?复现完慢慢拍快照看内存里都是啥。找到不正常的占用就可以开始改代码了。
    rb6221
        14
    rb6221  
       2024-04-19 13:53:38 +08:00
    先静态扫描一下
    首先内存泄漏肯定必须优化
    然后再优化内存随便申请的问题
    在这过程中摸索出适合你们团队的一套静态 es 规范,后续团队强制开启执行就行了
    VagabondH
        15
    VagabondH  
       2024-04-19 14:25:14 +08:00
    你是说浏览器整个 700 - 800MB ,还是你们的网页直接就占到了 700-800MB 呢? 大概率不是因为你们的项目过大,而是因为你们某些数据或者渲染 dom 的操作不当导致的,可以在占用大的 case 下用 performance 工具录了 10s 然后分析是因为内存问题还是渲染问题。
    lulinchuanllc
        16
    lulinchuanllc  
    OP
       2024-04-19 17:33:34 +08:00
    @8355 如果可以一人加一条 32G 内存条就好了
    lulinchuanllc
        17
    lulinchuanllc  
    OP
       2024-04-19 17:34:47 +08:00
    @nitmali 这种代码太多了,代码迭代三四年了,什么写法都有
    lulinchuanllc
        18
    lulinchuanllc  
    OP
       2024-04-19 18:05:05 +08:00
    @rekulas #3 感谢大佬,我试下这个工具
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2938 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 13:41 PVG 21:41 LAX 05:41 JFK 08:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86