我在播种 mp4 文件时面临着高内存消耗。
我有 1gb mp4 文件
和简单的代码行
seeder.seed(fileStream, function (torrent) {
console.log('started seeding %s - %s', torrent.magnetURI, torrent.files[0].name);
});
这为从此文件收集的流播种。
当执行到达该行时,我将面临大量 RAM 内存消耗。
前:
后:
7-8 GIGS 的差异!?!
内存消耗正在下降,种子回调执行后 10 秒,减去 2gb,不是那么多。
我看到这个警告:
(节点:26822) MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。[Torrent] 添加了 11 个现成的听众。使用emitter.setMaxListeners() 增加限制
但是,我认为该库用于许多少数(用于节点)侦听器,因此它收集了我在循环中的某处创建它们并警告我,因此源不在这里。
这可能是因为我的 PC 使用 ram 磁盘缓存,并且代码保留的不是 RAM,而是 NVram。
但是当我查看/tmp文件夹时,我只看到一个1Gb的新 torrent 文件,所以它等于原始文件。
所以问题:
- 播种启蒙是如何安排的,我为什么要面对这个,你的想法?
- 是否可以在不填充原始文件的情况下播种文件,也许因为我使用 webtorrent.File.createReadStream 方法而填充文件?
- 文件播种将如何扩展,我需要多少资源来播种 50 个此类文件,50 倍?你做了一些测试吗?
- 使用本机 webtorrent-trackers 来处理大文件(500Gb-1Tr)是否仍然是实际的,还是最好自己提高?