Fetch API会泄漏Chrome中的内存

use*_*506 8 javascript memory-leaks google-chrome fetch fetch-api

以最简单的方式使用fetch-API时,Chrome无法正确收集垃圾.难道我做错了什么?

for (i = 0; i < 100; i++) {
  fetch('https://upload.wikimedia.org/wikipedia/commons/3/3d/LARGE_elevation.jpg')
    .then(response => {
      console.log('Memory-bloating')
    })
}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/dozrpcvj/12/

这个JSFiddle用1.4GB填充内存,直到手动垃圾收集或关闭选项卡才会释放.如果你将迭代次数增加到1000,它"下载"14GB(来自自己的磁盘)而不是垃圾收集,它开始填充磁盘上的交换文件.

我做错了什么或这是Chrome中的错误?在使用Safari进行测试时,它还会使用1.4GB的硬盘驱动器,但一旦完成就会开始进行垃圾回收.

PS.您不能使用内存分析器,因为它告诉您只使用几MB的数据,即使活动监视器或Chromes自己的任务管理器说1.4GB.

小智 -2

fetch('https://upload.wikimedia.org/wikipedia/commons/3/3d/LARGE_elevation.jpg')
    .then(response => response.json())
    .then(data => console.log(data))
Run Code Online (Sandbox Code Playgroud)