JavaScript で処理時間を計測する場合の話で、複数の方法があるので、そのいくつかをまとめてみました。
Node.js は 2通り、ブラウザ(Chrome を利用)は 3通りの方法を試しています。
Console API
最初は Console API です。
●Console API reference - Chrome Developers
https://developer.chrome.com/docs/devtools/console/api/#time
以下、ブラウザと Node.js でそれぞれ動かしてみたものです。
ブラウザ
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
</body>
<script>
console.log("start");
console.time("test");
let count;
const num = 2000000000;
for (let i = 0; i < num; i++) {
let square = i ** 2;
}
console.timeEnd("test");
console.log("end");
</script>
</html>
Node.js
console.log("start");
console.time("test");
let count;
const num = 200000000;
for (let i = 0; i < num; i++) {
let square = i ** 2;
}
console.timeEnd("test");
console.log("end");
Performance
次は以下を試します。
●Performance - Web API | MDN
https://developer.mozilla.org/ja/docs/Web/API/Performance
●Performance measurement APIs | Node.js v17.1.0 Documentation
https://nodejs.org/api/perf_hooks.html
以下、ブラウザと Node.js でそれぞれ動かしてみたものです。
Node.js の場合は const performance = require("perf_hooks").performance;
という部分を追加しています。
ブラウザ
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
</body>
<script>
console.log("start");
const startTime = performance.now();
let count;
const num = 2000000000;
for (let i = 0; i < num; i++) {
let square = i ** 2;
}
console.log(`${performance.now() - startTime}`);
console.log("end");
</script>
</html>
Node.js
const performance = require("perf_hooks").performance;
console.log("start");
const startTime = performance.now();
let count;
const num = 200000000;
for (let i = 0; i < num; i++) {
let square = i ** 2;
}
console.log(`${performance.now() - startTime}`);
console.log("end");
出力は省略しています。
ブラウザ(Chrome)の開発者ツール
以下の記事に、Chrome の開発者ツールを使った例が書かれていたので、それを試してみました。
●JavaScriptで任意の処理にかかる時間を計測する
https://sbfl.net/blog/2017/12/01/javascript-measure-time/
手順は以下となります。
- Chrome で開発者ツールを開く
- Performanceタブを開く ⇒
- 左上にある丸型のアイコンかその隣のアイコンを押して計測開始4
- Stopボタンを押す」
以下は、計測結果が表示された場所のキャプチャです。