从同一个Nodejs进程中测量Nodejs过程的CPU使用情况



我想测量主nodejs进程所消耗的CPU,即同一进程中没有任何子进程的单个进程。

从文件上看,process.cpuUsage似乎就是我要找的人。不过,有些事情我还没有完全理解。

来自官方文件

process.cpuUsage((方法返回用户和系统CPU时间当前进程的用法,在具有属性user和的对象中系统,其值为微秒值(百万分之一秒(。这些值分别测量在用户代码和系统代码中花费的时间,如果多个CPU核心正在为此进程执行工作。

我不明白的是最后一句话。如果一个节点进程是单线程的,那么多个CPU内核如何为该进程执行工作

我不明白的是最后一句话。如果一个节点进程是单线程的,那么多个CPU核心如何为该进程执行工作?

Nodejs将Javascript作为单个线程运行(除非您专门使用Worker Threads(,但node.js库本身使用了许多本地线程。例如,libuv的文件I/O部分使用一个用于磁盘I/O的线程池,并且多个线程可以参与运行fs模块的本机代码部分。此外,一些具有本机代码的附加模块可能会使用自己的本机代码线程来帮助它们实现目标。

因此,在一个正在运行的node.js程序中,可能有多个CPU对进程的整体代码做出贡献,这取决于它到底在做什么。

最新更新