6 核服务器与 10 核服务器处理器,功能执行上没有不同

问题描述 投票:0回答:1

我有一个专用服务器,有 6 个核心,每个核心的处理能力为 2.5GHz。

我在

Node.js
18 和
pm2
上进行了测试,以检查处理速度,如下所示:

function summBrute(k) {
    const arr = [75, 283, 361, 168, 23, 489, 421, 95, 72, 380, 384, 470, 235, 465, 276, 26, 364, 416, 373, 184, 211, 239, 485, 18, 19, 252, 447, 6, 291, 324, 497, 352,
    458, 201, 238, 116, 333, 163, 207, 417, 340, 431, 5, 269, 258, 178, 182, 295, 257, 434, 37, 372, 154, 223, 313, 80, 71, 229, 379, 181, 396, 281, 491, 58, 254,
    359, 79, 175, 143, 214, 217, 148, 393, 246, 34, 166, 251, 381, 413, 180, 338,
    442, 494, 378, 123, 118, 395, 446, 459, 472, 457, 51, 127, 351, 389, 157, 260,
    370, 405, 346
    ];
    let sum;
    for(let i = 0; i < k; i++) {
        sum += arr.reduce((partialSum, a) => partialSum + a, 0);
    }
    return sum;
}

setInterval(() => {
    var t0 = performance.now();
    summBrute(200000);
    var t1 = performance.now();
    console.log("Took Time:: " + (t1 - t0) + " milli");
}, 1000);

平均执行时间为 70 毫秒。

问题是,当我使用相同的函数在同一台具有 10 个核心的服务器中测试执行速度时,它并没有改变执行时间。

多了 4 个核心,但执行时间仍然是 70 毫秒???

这怎么可能?

javascript node.js ubuntu pm2
1个回答
0
投票

在 Node.js 中运行的 JavaScript 代码仅在一个线程上运行(尽管 Node.js 本身可能会使用其他几个线程来进行内务管理),无论您的系统有多少个核心。 (Node.js 文档here中有一些相关内容。)要利用多核,您需要使用工作线程和/或子进程(或者,我想,多个 Node .js 进程)。

© www.soinside.com 2019 - 2024. All rights reserved.