【初心者向け】Node.jsのprocess.cpuUsage()メソッドでCPU使用時間を計測する方法
process.cpuUsage()メソッドは、現在実行中のNode.jsプロセスにおけるCPU使用時間を取得するために使用されるメソッドです。戻り値はuserとsystemという2つのプロパティを持つオブジェクトとして返され、それぞれの値はマイクロ秒(10^-6秒)単位で表されます。
なお、複数のCPUコアが実行中のプロセスの処理に携わっている場合、返される値が実際の経過時間を上回ることがある点に注意してください。
戻り値の各プロパティの意味
- user:ユーザーモード(アプリケーションコードの実行)で消費されたCPU時間
- system:カーネルモード(OSレベルの処理)で消費されたCPU時間
構文
process.cpuUsage([previousValue])
パラメータ
このメソッドは、以下の1つのパラメータのみを受け取ります。
previousValue − 省略可能なパラメータです。以前に
process.cpuUsage()メソッドを呼び出した際の戻り値を指定します。この引数を渡すことで、前回呼び出し時からの差分(増分)を取得できます。
使用例1:基本的な使い方
まず、「cpuUsage.js」という名前のファイルを作成し、以下のコードスニペットをコピーします。その後、次のコマンドでコードを実行してください。
node cpuUsage.js
cpuUsage.js
// process.cpuUsage の使用例を示す Node.js プログラム
// processモジュールの読み込み
const process = require('process');
// メソッドを呼び出してCPU使用状況を取得
const usage = process.cpuUsage();
// CPU使用状況の値を出力
console.log(usage);
実行結果
admin@root:~/node/test$ node cpuUsage.js
{ user: 352914, system: 19826 }
使用例2:previousValueを使った差分計測
続いて、previousValueパラメータを使用した例を見てみましょう。この例では、約100ミリ秒間CPUを使用した処理の前後で、CPU使用時間の差分を計測しています。
// process.cpuUsage の差分計測を示す Node.js プログラム
// processモジュールの読み込み
const process = require('process');
// 最初のCPU使用状況を取得
var usage = process.cpuUsage();
// 計測開始時点のCPU使用状況を出力
console.log("cpu usage before: ", usage);
// 現在のタイムスタンプを取得
const now = Date.now();
// プロセスを約100ミリ秒遅延させるループ
while (Date.now() - now < 100);
// CPUを約100ms使用した後、
// previousValueを渡して再度process.cpuUsage()を呼び出す
usage = process.cpuUsage(usage);
// 差分のCPU使用状況を出力
console.log("Cpu usage by this process: ", usage);
実行結果
admin@root:~/node/test$ node cpuUsage.js
cpu usage before: { user: 357675, system: 32150 }
Cpu usage by this process: { user: 93760, system: 95 }
このように、前回の戻り値を引数として渡すことで、特定の処理区間におけるCPU使用時間だけを正確に把握できます。パフォーマンスの計測やボトルネックの分析などに役立つため、ぜひ活用してみてください。
-
【Node.js入門】process.argvでコマンドライン引数を取得する方法
process.argv は、Node.js プロセスの起動時にコマンドラインから渡されたすべての引数を配列として返すプロパティです。配列の最初の要素には必ず process.execPath と同じ値(Node.js 実行バイナリへの絶対パス)が含まれ、2番目の要素には実行中のJavaScriptファイルのパスが格納されます。それ以降の要素には、ユーザーが指定した追加の引数が順番に並びます。 構文 process.argv パラメータ process.argv は、Node.js プロセス起動時に渡されたコマンドライン引数をすべて取得するためのものであり、ユーザーが何かを入力する必要はありま
-
Node.jsのprocess.archでCPUアーキテクチャを取得する方法
Node.jsのprocess.archは、現在のNode.jsプロセスがコンパイルされたCPUアーキテクチャを取得するためのプロパティです。なお、process.archは関数ではなく文字列型のプロパティであるため、呼び出し時に括弧()は不要です。返される主な値には、arm、arm64、ia32、mips、mipsel、ppc、ppc64、x32、x64などがあります。構文process.archパラメータと戻り値process.archは引数を受け取りません。実行中のコードがコンパイルされた環境のアーキテクチャ名を、文字列としてそのまま返します。主な戻り値の一覧x64: 64ビットx86互