本文へ移動

ベンチマーク ​

入力10万件で、非同期反復とオペレータのオーバーヘッドを比較します。グラフはウォームアップ5回の後に7回測定した所要時間の中央値(秒)で、短いほど高速です。目盛りはグラフごとに異なります。

逐次非同期 map、並行・入力順の map、13ステージの map/filter パイプライン。Node.js と Bun の所要時間(秒)。

Node.js v24.22.0 / Bun v1.4.3 · Apple M1 Pro · 通常 GC。

グラフ処理内容
Sequential async map(逐次変換)concurrency: 1、capacity: 1
Concurrent ordered map(並行変換・入力順出力)concurrency: 8、capacity: 16
13-stage map/filter pipelineID の取り出しに続き、加算と97の倍数を除外するフィルタを6回適用

入力は非同期ジェネレータから取得し、map コールバックは Promise.resolve() を await します。タイマーやネットワークの待機時間は含みません。

再現手順 ​

Node.js、Bun、pnpm、uv が必要です。

sh
pnpm install --frozen-lockfile
pnpm bench:svg

# 保存済みの結果を再描画:
pnpm bench:svg --reuse

掲載グラフは既定の通常 GC(--gc=none)で測定しています。個別の測定や JSON 出力は測定方法と CLI オプションを参照してください。