wildnode
V2EX  ›  React

有没有大佬知道 React 这种内存泄漏可能是什么原因导致的?

  •  
  •   wildnode · Jul 18, 2024 · 3940 views
    This topic created in 692 days ago, the information mentioned may be changed or developed.

    公司让排查性能问题,看了一天了也没啥头绪...

    有没有大佬知道这种情况有可能是啥原因导致的

    我初步怀疑可能是多个 hooks 之间的循环依赖问题,但是代码翻了一天也没找到啥蛛丝马迹,搜索引擎上也找不到啥有深度的排查内存泄漏的文章,都是些套话,全局变量,事件、定时器未移除啥的,心累...

    https://i.imgur.com/SFGwfMX.png

    13 replies    2024-07-18 20:36:07 +08:00
    douxc
        1
    douxc  
       Jul 18, 2024
    devtools 记录内存快照,然后根据数据分析;猜的话太难了
    asdjgfr
        2
    asdjgfr  
       Jul 18, 2024
    NessajCN
        3
    NessajCN  
       Jul 18, 2024
    等我开水晶球给你算一卦
    chenliangngng
        4
    chenliangngng  
       Jul 18, 2024
    按照我以前的经验,可以用二分法定位到有问题的代码位置
    stew5566
        5
    stew5566  
       Jul 18, 2024
    看起来是深层级的数据引起的多层调用,有树结构的 observe ?
    CatchXS
        6
    CatchXS  
       Jul 18, 2024
    用二分法查一下吧,感觉像是某个变量一直没有释放掉。
    wangcheng
        7
    wangcheng  
       Jul 18, 2024
    上点代码呗
    particlec
        8
    particlec  
       Jul 18, 2024
    有点像对象循环引用
    3uncle
        9
    3uncle  
       Jul 18, 2024
    memoizedState 没初始化吧?
    lovelylain
        10
    lovelylain  
       Jul 18, 2024 via Android
    回退历史代码,看看哪次修改引入的,再分析改动
    tcper
        11
    tcper  
       Jul 18, 2024
    导致内存泄露归根到底就是这几个原因:全局变量,事件、定时器未移除
    只是你代码里哪里全局变量,哪里的事件未移除需要你自己找
    txzh007
        12
    txzh007  
       Jul 18, 2024
    内存快照看一下是什么内容占用的,凭感觉八成是字符串
    duhbbx1119
        13
    duhbbx1119  
       Jul 18, 2024   ❤️ 1
    最近在排查使用 vue2 写的业务代码的问题,同事教我排查的,操作前快照一次,操作后快照一次,比较这两次操作之间的 哪些对象没释放
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   971 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 19:14 · PVG 03:14 · LAX 12:14 · JFK 15:14
    ♥ Do have faith in what you're doing.