gpt4 book ai didi

React Native 中的 iOS websocket 内存问题

转载 作者:技术小花猫 更新时间:2023-10-29 10:52:40 27 4
gpt4 key购买 nike

我们在 React Native 中使用 websocket blob 实现时遇到内存泄漏,无法完全定位问题。

使用 Xcode Instruments 我们可以看到问题很可能发生在框架处理 RCTSRWebSocket.m 中的二进制消息的方式中。或者稍后在 RCTWebSocketModule.m 的调用树中

任何具有 Object-C 技能的人都能够看到为什么某些内存(可能分配给接收到的消息)没有被正确释放?

Link to Github issue

Memory usage

Debug Info

Call tree

最佳答案

问题终于可以解决了。在深入了解 WebSockets 尤其是 blob 的实现后,我发现只要不直接关闭所有 blob,它们都会保留在内存中。

这意味着在处理完接收到的数据后,您应该像这样关闭 Blob:

ws.onmessage = function (e) {
// Do whatever with the data through e.data.
const data = e.data;
// When you are done with the received data, you must close the Blob:
e.data.close();
};

关于React Native 中的 iOS websocket 内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47395122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com