Ole*_*gas 3 javascript garbage-collection xmlhttprequest
我有一个简单的JavaScript代码,在无限运行时消耗内存.内存消耗由Google Chrome内存分析器监控.
setInterval(function(){
var xhr = new XMLHttpRequest();
xhr.open('GET', 'json.txt', true);
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
xhr.send('');
}, 500);
Run Code Online (Sandbox Code Playgroud)
带有上面代码示例的Html文件并json.txt托管在我的本地服务器上,获取文件的时间不超过500毫秒(总是大约7-10毫秒).
在很长一段时间内,内存图看起来就像那样

编辑一小时工作后的同一个Chrome窗口

编辑 从长远来看(小时)并非所有内存都被回收,图形仍然在升序.我理解为什么内存被消耗,我不明白为什么它没有完全回收.
编辑 这是我如何减少内存泄漏
var callback = function(){
if(this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
}
setInterval(function(){
var xhr = new XMLHttpRequest();
xhr.open('GET', 'json.txt', true);
xhr.onreadystatechange = callback;
xhr.send('');
}, 500);
Run Code Online (Sandbox Code Playgroud)
这种改进允许不将回调的闭包链接到xhrvar.
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |