Blacksmith ベンチマーク スナップショット
このページはツール ベンチマーク ワークフローから生成されるため、公開されたパフォーマンス数値では 1 つの再現可能なランナー、入力コーパス、およびコミットを引用できます。
最新の結果
測定値: 2026-07-09T10:06:01.799Z
コミット: 27fe77df7c87 (実行)
ランナー: blacksmith-32vcpu-ubuntu-2404 (32 論理 CPU、AMD EPYC、32 vCPU / 128 GB RAM / 1.5 TB ストレージ)
入力: 15,000 の生成された SFC ファイル (58.7 MB)。 1 回のウォームアップ実行後の 5 回の測定実行の中央値。
大規模 SFC: 900 個の反復テンプレート ブロック (674.9 KB)。 Nuxt インポート セット: 500 SFC ファイル。
| 表面 |
ファイル |
既存のツール |
既存の中央値 |
ヴィゼ1T |
ヴィゼマックス |
スピードアップ |
| SFCコンパイル |
15,000 |
@vue/compiler-sfc (1T) |
17.54秒 |
3.23秒 |
290.8ミリ秒 |
60.3倍 |
| 大規模な SFC コンパイル |
1 |
@vue/compiler-sfc (1T) |
192.6ミリ秒 |
62.6ミリ秒 |
56.3ミリ秒 |
3.4倍 |
| 大型SFCタイプチェック |
1 |
vue-tsc |
1.69秒 |
178.7ミリ秒 |
178.0ミリ秒 |
n/a (cross-engine) |
| 糸くず |
15,000 |
eslint-プラグイン-vue (1T) |
54.32秒 |
1.91秒 |
279.3ミリ秒 |
194.5倍 |
| フォーマット |
15,000 |
よりきれいな CLI |
143.61秒 |
10.15秒 |
1.79秒 |
80.3倍 |
| タイプチェック |
500 |
vue-tsc |
5.36秒 |
500.5ミリ秒 |
430.1ミリ秒 |
n/a (cross-engine) |
| Vite ビルド (エンドツーエンド) |
1,000 |
@vitejs/plugin-vue |
1.66秒 |
該当なし |
732.5ミリ秒 |
2.3倍 |
| Nuxt SPA ビルド (エンドツーエンド) |
500 |
Nuxt のデフォルトのコンパイラ |
6.79秒 |
該当なし |
6.42秒 |
1.1倍 |
公平性に関する注意事項:
- すべてのツールは、同じチェックアウトとロックファイルから生成された同じ Vue SFC コーパス上で実行されます。
- 15,000 SFC 行は、多数のファイルのワークロードです。大きな SFC 行は 1 つの大きなコンポーネントを分離します。
- 報告された時間は中央値です。ウォームアップ実行後の測定実行ではバリアント順序が変更されます。
- 破壊的なフォーマッタの実行では、各呼び出しの前に同じ入力の新しいコピーを受け取ります。
- SFC コンパイル Vize max は
compileSfcBatchWithResults ウォールタイムを使用するため、主な数値には JS/ネイティブの境界を越えて生成された出力が含まれます。統計のみのネイティブ timeMs は、バリアントの詳細でのみ表示されます。
- Vite のビルド タイミングにはフィクスチャのコピー/セットアップは含まれません。 Vize max レーンは
precompileBatchSize をベンチマーク ファイル数に設定するため、Blacksmith max はメモリセーフなデフォルト チャンクの代わりに 1 つのネイティブ プリコンパイル バッチを実行します。
- Nuxt SPA のビルド タイミングでは合成アプリの生成が除外され、
nuxt build と Nuxt のデフォルト コンパイラーを、@vizejs/nuxt がインストールされている同じアプリと比較します。
- シングルスレッド レーンが役立つ場合に表示され、主な高速化では、現在のデフォルト/シングルスレッド レーンと Vize の最大ランナー レーンを比較します。
- タイプチェックの行は 2 つの TypeScript エンジンにまたがります。vue-tsc は JavaScript コンパイラを、Vize check はネイティブ tsgo (Corsa) を実行するため、単一の倍率は公開せず (
n/a (cross-engine))、エンジンクラスごとに順位付けします。単一の数値は TypeScript の Go 書き直しを Vue レイヤーの成果として誤って伝えてしまいます。
コマンド:
gh workflow run tool-benchmark.yml --ref <branch> -f file_count=15000 -f check_file_count=500 -f vite_file_count=1000 -f nuxt_file_count=500 -f large_blocks=900 -f runs=5 -f warmups=1 -f commit_results=true
node bench/generate.mjs 15000
node bench/compare-tools.mjs --input bench/__in__ --vize-bin target/release/vize --runs 5 --warmups 1 --check-file-count 500 --vite-file-count 1000 --nuxt-file-count 500 --large-blocks 900 --runner-label "blacksmith-32vcpu-ubuntu-2404" --out tool-benchmark-summary.md --json tool-benchmark-results.json --doc performance-blacksmith.md
バリアントの詳細と実際の実行時間
SFCコンパイル
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| @vue/compiler-sfc (1T) |
17.54秒 |
855 ファイル/秒 |
17.88秒、17.59秒、17.49秒、17.54秒、17.32秒 |
| @vue/compiler-sfc (32 ワーカー) |
5.90秒 |
2.5k ファイル/秒 |
5.89秒、5.90秒、5.86秒、5.95秒、6.09秒 |
| Vize ネイティブ ループ (1T) |
3.23秒 |
4.6k ファイル/秒 |
3.10秒、3.13秒、3.36秒、3.36秒、3.23秒 |
| Vize ネイティブ バッチ結果 (最大) |
290.8ミリ秒 |
51.6k ファイル/秒 |
290.8ms、272.9ms、302.8ms、274.7ms、302.9ms |
| Vize ネイティブ バッチ統計のみ (コア最大値) |
178.8ミリ秒 |
83.9k ファイル/秒 |
172.9ms、174.3ms、178.8ms、180.3ms、180.1ms |
大規模な SFC コンパイル
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| @vue/compiler-sfc (1T) |
192.6ミリ秒 |
5 ファイル/秒 |
192.6ms、192.6ms、197.2ms、195.9ms、190.7ms |
| @vue/compiler-sfc (1 ワーカー) |
479.8ミリ秒 |
2 ファイル/秒 |
468.3ms、475.4ms、479.8ms、555.9ms、493.1ms |
| Vize ネイティブ ループ (1T) |
62.6ミリ秒 |
16 ファイル/秒 |
62.6ms、55.1ms、65.2ms、57.1ms、65.0ms |
| Vize ネイティブ バッチ結果 (最大) |
56.3ミリ秒 |
18 ファイル/秒 |
54.8ミリ秒、54.3ミリ秒、56.3ミリ秒、56.4ミリ秒、56.8ミリ秒 |
| Vize ネイティブ バッチ統計のみ (コア最大値) |
55.7ミリ秒 |
18 ファイル/秒 |
56.7ms、53.4ms、55.7ms、55.3ms、55.8ms |
大型SFCタイプチェック
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| vue-tsc |
1.69秒 |
1 ファイル/秒 |
1.70秒、1.72秒、1.68秒、1.62秒、1.69秒 |
| ヴィゼチェック(1T) |
178.7ミリ秒 |
6 ファイル/秒 |
176.2ms、178.4ms、179.1ms、189.4ms、178.7ms |
| ヴィゼチェック(最大) |
178.0ミリ秒 |
6 ファイル/秒 |
177.7ms、178.0ms、177.5ms、189.5ms、194.5ms |
糸くず
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| eslint-プラグイン-vue (1T) |
54.32秒 |
276 ファイル/秒 |
54.32秒、54.44秒、53.47秒、54.35秒、54.06秒 |
| eslint-plugin-vue (32 ワーカー) |
13.47秒 |
1.1k ファイル/秒 |
13.41秒、13.61秒、13.63秒、13.26秒、13.47秒 |
| ヴィゼリント(1T) |
1.91秒 |
7.9k ファイル/秒 |
1.88秒、1.84秒、1.91秒、1.91秒、1.97秒 |
| Vize lint (最大) |
279.3ミリ秒 |
53.7k ファイル/秒 |
275.8ミリ秒、272.1ミリ秒、287.9ミリ秒、287.1ミリ秒、279.3ミリ秒 |
形式
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| よりきれいな CLI |
143.61秒 |
104 ファイル/秒 |
142.61秒、142.38秒、143.61秒、145.98秒、144.94秒 |
| ヴィゼ fmt (1T) |
10.15秒 |
1.5k ファイル/秒 |
10.10秒、10.26秒、10.15秒、10.43秒、9.82秒 |
| Vize fmt (最大) |
1.79秒 |
8.4k ファイル/秒 |
1.78秒、1.79秒、1.82秒、1.82秒、1.78秒 |
型チェック
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| vue-tsc |
5.36秒 |
93 ファイル/秒 |
5.46秒、5.36秒、5.50秒、5.34秒、5.36秒 |
| ヴィゼチェック(1T) |
500.5ミリ秒 |
999 ファイル/秒 |
489.1ms、513.6ms、500.5ms、504.0ms、491.2ms |
| ヴィゼチェック(最大) |
430.1ミリ秒 |
1.2k ファイル/秒 |
427.4ms、430.1ms、421.3ms、438.8ms、431.3ms |
Vite ビルド (エンドツーエンド)
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| @vitejs/plugin-vue |
1.66秒 |
601 ファイル/秒 |
1.65秒、1.61秒、1.69秒、1.66秒、1.95秒 |
| @vizejs/vite-plugin |
732.5ミリ秒 |
1.4k ファイル/秒 |
732.5ms、713.2ms、746.2ms、691.9ms、752.8ms |
Nuxt SPA ビルド (エンドツーエンド)
| バリアント |
中央値 |
スループット |
生の測定された実行 |
| Nuxt のデフォルトのコンパイラ |
6.79秒 |
74 ファイル/秒 |
6.74秒、6.73秒、6.86秒、6.89秒、6.79秒 |
| @vizejs/nuxt |
6.42秒 |
78 ファイル/秒 |
6.36秒、6.42秒、6.31秒、6.50秒、6.50秒 |