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

2024-07-18 14:20:56 +08:00
 wildnode

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

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

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

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

3342 次点击
所在节点    React
13 条回复
douxc
2024-07-18 15:01:23 +08:00
devtools 记录内存快照,然后根据数据分析;猜的话太难了
asdjgfr
2024-07-18 15:03:26 +08:00
NessajCN
2024-07-18 15:17:46 +08:00
等我开水晶球给你算一卦
chenliangngng
2024-07-18 15:20:07 +08:00
按照我以前的经验,可以用二分法定位到有问题的代码位置
stew5566
2024-07-18 15:26:36 +08:00
看起来是深层级的数据引起的多层调用,有树结构的 observe ?
CatchXS
2024-07-18 16:27:42 +08:00
用二分法查一下吧,感觉像是某个变量一直没有释放掉。
wangcheng
2024-07-18 16:42:30 +08:00
上点代码呗
particlec
2024-07-18 16:48:15 +08:00
有点像对象循环引用
3uncle
2024-07-18 16:50:15 +08:00
memoizedState 没初始化吧?
lovelylain
2024-07-18 19:47:35 +08:00
回退历史代码,看看哪次修改引入的,再分析改动
tcper
2024-07-18 20:17:09 +08:00
导致内存泄露归根到底就是这几个原因:全局变量,事件、定时器未移除
只是你代码里哪里全局变量,哪里的事件未移除需要你自己找
txzh007
2024-07-18 20:31:32 +08:00
内存快照看一下是什么内容占用的,凭感觉八成是字符串
duhbbx1119
2024-07-18 20:36:07 +08:00
最近在排查使用 vue2 写的业务代码的问题,同事教我排查的,操作前快照一次,操作后快照一次,比较这两次操作之间的 哪些对象没释放

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1058279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX