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