在使用 HTTP 流的 WebSocket 回退中,我可以看到XmlHttpRequest#responseText
每次readystate
更改时都会调用它(并且 >= 3)。
WHATWG 生活标准说文本响应是
...
decode
使用回退编码字符集在接收到的字节上运行的结果。
我认为这意味着每次以这种方式进行更改时,都会创建一个大小与将自发出 HTTP 流请求以来收到的所有数据编码为 UTF-16 的结果相对应的新字符串。readystate
我观察到周期性(即对于 HTTP 流响应缓冲区较大的时期 - 它会定期重置)在使用这种技术时 JavaScript 堆中的大量内存搅动,每秒大约有 5 条消息传入客户端并认为它是与上述方法有关。
这听起来合理吗?
有没有人找到任何技术来减少这种 HTTP 流技术对内存子系统的影响(例如,缩短每个 HTTP 流连接的寿命)?