ubuntu 6核心服务器与10核心服务器处理器,功能执行上没有区别

bogh5gae  于 2023-10-17  发布在  其他
关注(0)|答案(1)|浏览(113)

我有一个专用的服务器,每个核心具有2.5GHz的处理能力。
我在Node.js 18和pm2上运行了一个测试来检查处理速度,如下所示:

  1. function summBrute(k) {
  2. 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,
  3. 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,
  4. 359, 79, 175, 143, 214, 217, 148, 393, 246, 34, 166, 251, 381, 413, 180, 338,
  5. 442, 494, 378, 123, 118, 395, 446, 459, 472, 457, 51, 127, 351, 389, 157, 260,
  6. 370, 405, 346
  7. ];
  8. let sum;
  9. for(let i = 0; i < k; i++) {
  10. sum += arr.reduce((partialSum, a) => partialSum + a, 0);
  11. }
  12. return sum;
  13. }
  14. setInterval(() => {
  15. var t0 = performance.now();
  16. summBrute(200000);
  17. var t1 = performance.now();
  18. console.log("Took Time:: " + (t1 - t0) + " milli");
  19. }, 1000);

平均执行70毫秒。
问题是,当我使用相同的函数来测试在同一台10个核心的服务器上的执行速度时,它没有改变执行时间。
4个内核多了,但执行时间仍然是70毫秒???
怎么可能?

lb3vh1jj

lb3vh1jj1#

默认情况下,在Node.js中运行的JavaScript代码只在一个线程¹上运行,因此一次只运行一个内核,而不管系统有多少个内核。(在Node.js文档here中有一点关于这方面的内容。)要利用多个核心,您需要使用worker threads和/或child processes(或者,我想,多个Node.js进程-例如,集群)。
<$(尽管Node.js本身可能会使用其他几个来进行内务处理)

相关问题