Node.js・Deno・Bun を、それぞれの最新バージョンで Windows 11 の同一マシン上で動かして比較したプロジェクトです。
起動時間・HTTP スループット・JSON 処理・ファイル I/O・CPU 処理・SQLite・依存インストール・TypeScript 実行・単一実行ファイル化・テスト実行の
計 11 項目を計測し、あわせて npm パッケージ 8 個の互換性を確認しました。
3 ランタイムはシステムに入れず、公式配布物をプロジェクト内 tools/ に隔離配置しています。
用途別の推奨、11 項目の実測値と内訳、評価軸ごとのスコア、そして結果の読み方の注意までをまとめたものです。
| ランタイム | 総合スコア | 性格 |
|---|---|---|
| Bun 1.4.4 | 84.8 | 11 項目のうち 9 項目で最速。起動系は他を 2〜4 倍引き離す。LTS 相当の枠が無い |
| Deno 2.9.8 | 66.0 | 権限が既定で拒否される唯一のランタイム。キャッシュ有インストールが 0.9 秒と圧倒的。固有 API の HTTP は最速 |
| Node.js 26.12.1 | 61.9 | LTS・SQLite 最速・実績で崩れない |
| Node.js 24.22.1(参考) | 63.0 | 起動系は 26 系とほぼ同じ。単一実行ファイル化を測っていない分、総合で 26 系を上回る |
| 用途 | 推奨 |
|---|---|
| 長期運用する業務 API サーバ | Node.js 26 |
| 社内向け CLI ツール | Bun |
| 使い捨てのスクリプト・自動化 | Bun |
| フロントエンドのビルド基盤 | Bun |
| 既存 Node.js プロジェクトの高速化 | Bun |
| 外部コードを実行するサンドボックス用途 | Deno |
何を測り、どう測り、どう判断するかを着手前に決めた文書です。評価軸の重み付け、ベンチマーク項目 B-01〜B-11 の設計、公平に測るためのルール、実施フロー、リスクと対策を含みます。計画から変えた点(B-05 の件数など)も記録してあります。
# Windows PowerShell 5.1・pwsh 7 のどちらでも動く
# 1. ランタイムと計測ツールを tools/ に配置(SHA256 検証つき)
src/scripts/10_setup_runtimes/setup-runtimes.ps1
# 2. ベンチ本体(-Append で項目を分けて実行できる)
src/scripts/20_run_bench/run-bench.ps1 -Runs 10 -Warmup 3 -Only B-01,B-02,B-09,B-11
src/scripts/20_run_bench/run-bench.ps1 -Runs 10 -Warmup 3 -FileCount 2000 -Only B-04,B-05,B-06,B-07 -Append
src/scripts/20_run_bench/run-bench.ps1 -Only B-03 -HttpSeconds 10 -HttpConnections 50 -Append
# 3. 依存インストールと npm 互換性
src/scripts/30_run_install_bench/run-install-bench.ps1
# 4. 単一実行ファイル化
src/scripts/40_run_compile_bench/run-compile-bench.ps1
# 5. 集計
src/scripts/50_build_report/build-report.ps1
README.* このファイル
docs/css/ 計画書とレポートで共通のスタイル
docs/plan/ 検証計画書
docs/report/ 結果レポート
docs/results/ env.txt・measurements.csv・summary.json・qualitative.json・raw/
notes/ 調査(01_research)と課題(40_issues)
src/bench/ ベンチマーク本体(common / native / deps / compat / tests)
src/scripts/ 導入・計測・集計スクリプト(NN_名前/ の番号付きフォルダ。.ps1 と .cmd ランチャー)
tools/ 隔離配置したランタイムの実体(git 管理外・再取得可)と html2md ランチャー
tmp/ 一時ファイル(git 管理外)
| ランタイム | 系列 | バージョン | リリース日 | SHA256 検証 |
|---|---|---|---|---|
| Node.js 主軸 | Current | v26.12.1 | — | 公式 SHASUMS と一致 |
| Node.js | Active LTS (Krypton) | v24.22.1 | — | 公式 SHASUMS と一致 |
| Node.js | Maintenance LTS (Jod) | v22.23.2 | 2026-07-28 | 対象外 |
| Deno 主軸 | stable | v2.9.8 | — | 公式 sha256sum と一致 |
| Bun 主軸 | stable | v1.4.4 | — | 公式照合値なし(実測値を記録) |
Windows 11 Home(build 26300)/ Intel Core i7-11370H(4 物理コア・8 論理)/ メモリ 31.8 GB / NVMe SSD。計測日は 2026-10-25 です。
計測は AC 接続かつ電源モード「最大パフォーマンス」で実施しました。計測ツールは hyperfine 1.20.0 と oha 1.16.0 です。
環境と版数、バイナリの SHA256 は docs/results/env.txt に記録しています。
システムにインストールされているランタイムは使っていません。計測はすべて tools/ 配下の実行ファイルを明示パスで呼び出しています。
比較の周辺で調べたことをまとめています。
これから行う作業と、その状態をまとめています。