ベンチマーク
入力10万件で、非同期反復とオペレータのオーバーヘッドを比較します。グラフはウォームアップ5回の後に7回測定した所要時間の中央値(秒)で、短いほど高速です。目盛りはグラフごとに異なります。
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 pipeline | ID の取り出しに続き、加算と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 オプションを参照してください。