我使用websockets接收protcol缓冲区并遇到内存泄漏。无论输入缓冲区大小和频率如何,都会发生此泄漏。
protobufs作为Blob被接收但是当作为arrayBuffer接收时存在相同的泄漏。目前我所实现的是一个数据包处理程序,它将Blob设置为null以尝试调用垃圾回收。
我的来电:
merged.files <- Reduce(function(x, y) merge(x, y, all=TRUE), myfiles)
我的事件处理程序:ws.onMessage.listen(handlePacket);
我不完全理解websocket中的message of events是否是一个没有使处理事件出列的队列,但是看来为传入事件分配的所有内存都无法被垃圾回收。感谢所有帮助。
修改 客户端代码:
void handlePacket(message) { message = null; }
答案 0 :(得分:1)
看起来Dartium预计会泄漏内存,但是当使用Dart2js并在Chrome中运行时,它确实设法使用GC,尽管显示出与Dartium相同的症状。 https://github.com/dart-lang/sdk/issues/26660