首页 > 解决方案 > 如何在 Node js 中检查下载时间和执行情况?

问题描述

我想检查每个文件的下载需要多长时间,如果下载速度慢或快,所有文件都需要时间,我们如何在节点 js 上查看和测量它?也会更好,我们也可以考虑内存。谢谢你。顺便说一下,下面代码中的 final_list 是一个 url 数组。

我下载文件的代码

var download = function (url, dest, callback) {

        request.get(url)
            .on('error', function (err) { console.log(err) })
            .pipe(fs.createWriteStream(dest))
            .on('close', callback);

    };

    final_list.forEach(function (str) {
        var filename = str.split('/').pop();

        console.log('Downloading ' + filename);

        download(str, filename, function () { console.log('Finished Downloading' + "" + filename) });
    });

标签: javascriptjquerynode.jsdownloadprogress

解决方案


测量时间的方法:

  1. 使用process.hrtime.bigint()(高分辨率)。
  2. console.time与 一起console.timeEnd使用。

测量内存

使用process.memoryUsage().

这是使用上述所有方法更新的代码。

final_list.forEach(function (str) {
    var filename = str.split('/').pop();

    console.log('Downloading ' + filename);
    // console.time(filename);
    var start = process.hrtime.bigint();

    download(str, filename, function () {
        console.log('Finished Downloading' + "" + filename)
        // console.timeEnd(filename);
        var end = process.hrtime.bigint();
        var took = Number(end - start) / 1000000;
        console.log(`${filename}: ${took}ms`);
        console.log('Total used memory:', process.memoryUsage().heapUsed);
    });
});

推荐阅读