Vize

Blacksmith ベンチマークスナップショット

README と全言語のページは、同じコミット済み成果物から生成します。ファイル数は各行に記載しています。

ランナー 計測日時 計測回数 ウォームアップ
blacksmith-32vcpu-ubuntu-2404 (32 CPU) 2026-09-16T08:19:25.262Z 3 1

Actions · f9cc50ee2e2f · JSON

対象 ファイル数 比較ツール 比較ツールの中央値 Vize 1T Vize max 速度比
SFC コンパイル 3,000 @vue/compiler-sfc (1T) 3.57s 835.3ms 65.0ms 54.8x
巨大 SFC コンパイル 1 @vue/compiler-sfc (1T) 61.4ms 16.3ms 15.2ms 4.0x
巨大 SFC 型検査 1 vue-tsc 1.34s 186.4ms 190.1ms 7.0x
Lint 3,000 eslint-plugin-vue (1T) 20.75s 432.3ms 114.0ms 182.0x
フォーマット 3,000 Prettier CLI 29.72s 1.07s 351.4ms 84.6x
型検査 500 vue-tsc 6.75s 2.03s 1.37s 4.9x
Vite ビルド 1,000 @vitejs/plugin-vue 1.66s n/a 889.2ms 1.9x
Nuxt ビルド 250 Nuxt default compiler 3.07s n/a 3.21s 0.95x
Musea 240 n/a n/a n/a 30.9ms n/a

型検査の速度比は、Vue プロジェクトが実際に使っている型チェッカー vue-tsc との比較です。vue-tsc は JavaScript 版 TypeScript コンパイラを、Vize はネイティブ tsgo を動かすため、この倍率にはツールチェーン全体の差が含まれ、Vue レイヤ単体の差ではありません。Vue レイヤだけを見たい場合は、詳細スナップショットのエンジンクラス別の表で同一エンジン同士の順位を比較してください。各計測で診断処理の検証を通過していますが、ツール間で診断の対応範囲は異なります。精度の同等性や、過去の Vize からの性能改善を示す倍率ではありません。検証を通過しなかった比較ツールには、時間や順位を掲載しません。

詳しい計測方法と検証結果

ツールのバージョンとバイナリのチェックサム
ツール バージョン バイナリ SHA-256
Vize vize 0.424.11 dc5e840133beec86106ca27c496ca01fbff4299a8aef6c3a0f2fca3131f88fe3
tsgo Version 7.0.2 4f2de678286401759b3fb4475bafe35b8f32b4b3a07d92642bbf37eadc9b34a4
vue-tsc Version 6.0.3 811cc8124f36b6c770964d486da62af1b9db6949f62bc47205982d17e8e7dc8d
verter-tsc verter-tsc 0.0.1-beta.3 81bec5c957487bd2caf15312bf4f180afadd074f11c1d34cb4bb2c66bd7ac224
Golar Golar version 0.1.10 a100c0e559b6cf85fc3e67a65f0b8eedcee0ccf624022fc4882bea2a3d6316da
TypeScript (vue-tsc) n/a n/a
Vue 3.6.0-beta.10 n/a
ESLint v10.4.1 41dd060d45aca4a2144b94862e21e285bbb726b19e61db7a03c5b2e0b67973cc
Prettier 3.8.3 a7a78ad15344be4f14f24832a8c5fa5918bec4339b8d1d0903a5167c34ecb428
Node.js v24.14.0 n/a

バックエンド: ネイティブ TypeScript エンジンのパスは /home/runner/_work/vize/vize/node_modules/@typescript/typescript-linux-x64/lib/tsc です。型検査の計測では、意図的に追加した診断が検出されることを tools/benchmarks/scripts/check-gate.mjs(.github/workflows/check-bench.yml)で検証します。

診断処理の検証

巨大 SFC 型検査: エンジン種別ごとの順位

エンジン種別 比較対象 中央値 同種の最速比
JavaScript TypeScript エンジン (tsc) vue-tsc 1.34s 1.00x
ネイティブ TypeScript エンジン (tsgo) Vize check (1T) 186.4ms 1.00x
ネイティブ TypeScript エンジン (tsgo) Vize check (max) 190.1ms 1.02x
ネイティブ TypeScript エンジン (tsgo) verter-tsc 1.58s 8.48x

速度比は同じネイティブ tsgo エンジンの比較に限定しています。診断範囲は異なるため、精度の同等性を示すものではありません。JavaScript TypeScript エンジンの vue-tsc は同じ実行の参考値として掲載し、エンジンをまたぐ速度比は算出しません。

Golar typecheck (事前検証): 検証で除外。実行時間と順位は掲載しません。

missed the corpus-scale plant or changed baseline diagnostics: {"plants":[["__CheckGatePlant.vue","error","2","7","TS2322","Type 'string' is not assignable to type 'number'."],["__CheckGatePlant.vue","error","7","26","TS2322","Type 'string' is not assignable to type 'Booleanish | undefined'."]],"added":[["LargeDashboard.vue","error","1019","89","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1111","89","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1157","88","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."]],"removed":[["LargeDashboard.vue","error","1019","88","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1111","88","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1157","89","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."]]}

Golar (lint+check) (事前検証): 検証で除外。実行時間と順位は掲載しません。

missed the corpus-scale plant or changed baseline diagnostics: {"plants":[["__CheckGatePlant.vue","error","2","7","TS2322","Type 'string' is not assignable to type 'number'."],["__CheckGatePlant.vue","error","7","26","TS2322","Type 'string' is not assignable to type 'Booleanish | undefined'."]],"added":[["LargeDashboard.vue","error","1088","89","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1111","89","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1203","89","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."]],"removed":[["LargeDashboard.vue","error","1088","88","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1111","88","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."],["LargeDashboard.vue","error","1203","88","TS2353","Object literal may only specify known properties, and ''data-index'' does not exist in type 'HTMLAttributes & ReservedProps'."]]}

型検査の実行検証(厳密なテンプレート検査、ウォームアップ前の検証、毎回の診断再確認):

比較対象 最小エラー注入 コーパスへの注入 診断数 終了コード 診断 SHA-256
vue-tsc 4 成功 300 2 508e4fa9ce85b1cd8051ee934c78c5bc2a9dd3a8ac7ff4b44f3d8dcf7263a2eb
verter-tsc 4 成功 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87
Vize check (1T) 4 成功 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87
Vize check (max) 4 成功 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87

型検査: エンジン種別ごとの順位

エンジン種別 比較対象 中央値 同種の最速比
JavaScript TypeScript エンジン (tsc) vue-tsc 6.75s 1.00x
ネイティブ TypeScript エンジン (tsgo) Vize check (max) 1.37s 1.00x
ネイティブ TypeScript エンジン (tsgo) Vize check (1T) 2.03s 1.47x
ネイティブ TypeScript エンジン (tsgo) verter-tsc 2.08s 1.51x

速度比は同じネイティブ tsgo エンジンの比較に限定しています。診断範囲は異なるため、精度の同等性を示すものではありません。JavaScript TypeScript エンジンの vue-tsc は同じ実行の参考値として掲載し、エンジンをまたぐ速度比は算出しません。

Golar typecheck (事前検証): 検証で除外。実行時間と順位は掲載しません。

missed the corpus-scale plant or changed baseline diagnostics: {"plants":[["__CheckGatePlant.vue","error","2","7","TS2322","Type 'string' is not assignable to type 'number'."],["__CheckGatePlant.vue","error","7","26","TS2322","Type 'string' is not assignable to type 'Booleanish | undefined'."]],"added":[["Component0007.vue","error","8","73","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0017.vue","error","8","72","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0027.vue","error","8","72","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."]],"removed":[["Component0007.vue","error","8","72","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0017.vue","error","8","73","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0027.vue","error","8","73","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."]]}

Golar (lint+check) (事前検証): 検証で除外。実行時間と順位は掲載しません。

missed the corpus-scale plant or changed baseline diagnostics: {"plants":[["__CheckGatePlant.vue","error","2","7","TS2322","Type 'string' is not assignable to type 'number'."],["__CheckGatePlant.vue","error","7","26","TS2322","Type 'string' is not assignable to type 'Booleanish | undefined'."]],"added":[["Component0037.vue","error","8","73","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0057.vue","error","8","73","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0197.vue","error","8","73","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."]],"removed":[["Component0037.vue","error","8","72","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0057.vue","error","8","72","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."],["Component0197.vue","error","8","72","TS2353","Object literal may only specify known properties, and ''data-kind'' does not exist in type 'HTMLAttributes & ReservedProps'."]]}

型検査の実行検証(厳密なテンプレート検査、ウォームアップ前の検証、毎回の診断再確認):

比較対象 最小エラー注入 コーパスへの注入 診断数 終了コード 診断 SHA-256
vue-tsc 4 成功 450 2 ca130bc55a0235c3dada35ca3a7aca8558f63858d7d03ec3ec586f4828773dd5
verter-tsc 4 成功 4250 1 7f6641e728fa345abc3ac7eebb7f77a5e694c0cdaf81bf951c8829c0b2c32cfe
Vize check (1T) 4 成功 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87
Vize check (max) 4 成功 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87

各ツールの実測値

SFC コンパイル

比較対象 中央値 (ms) 各回の時間 (ms)
@vue/compiler-sfc (1T) 3565.85 3567.88, 3565.85, 3550.948
@vue/compiler-sfc (32 workers) 1606.347 1697.16, 1528.422, 1606.347
Vize native loop (1T) 835.251 897.995, 835.251, 834.409
Vize native batch results (max) 65.028 59.568, 71.303, 65.028
Vize native batch stats-only (core max) 35.54 34.897, 35.54, 39.299
Vize batch sequence (1→32T, measures 32T) 37.278 37.278, 36.847, 37.976
Vize batch sequence (32T→1, measures 1T) 612.523 612.523, 588.983, 613.67

巨大 SFC コンパイル

比較対象 中央値 (ms) 各回の時間 (ms)
@vue/compiler-sfc (1T) 61.376 64.493, 61.376, 56.331
@vue/compiler-sfc (1 workers) 203.181 189.705, 203.181, 204.253
Vize native loop (1T) 16.263 16.263, 15.058, 17.05
Vize native batch results (max) 15.244 15.177, 15.902, 15.244
Vize native batch stats-only (core max) 11.67 11.374, 12.518, 11.67
Vize batch sequence (1→32T, measures 32T) 12.469 12.587, 11.654, 12.469
Vize batch sequence (32T→1, measures 1T) 12.33 12.33, 12.615, 12.214

巨大 SFC 型検査

比較対象 中央値 (ms) 各回の時間 (ms)
vue-tsc 1337.752 1348.946, 1315.192, 1337.752
verter-tsc 1580.097 1580.097, 1611.568, 1563.42
Vize check (1T) 186.426 186.426, 181.091, 188.789
Vize check (max) 190.067 190.067, 190.793, 183.272

Lint

比較対象 中央値 (ms) 各回の時間 (ms)
eslint-plugin-vue (1T) 20752.434 20609.852, 20830.969, 20752.434
eslint-plugin-vue (32 workers) 6984.314 6984.314, 6989.249, 6969.495
Vize lint (1T) 432.254 431.379, 432.254, 447.485
Vize lint (max) 114.045 114.045, 108.49, 120.315

フォーマット

比較対象 中央値 (ms) 各回の時間 (ms)
Prettier CLI 29723.111 28949.562, 29745.493, 29723.111
Vize fmt (1T) 1072.253 1059.388, 1104.777, 1072.253
Vize fmt (max) 351.408 351.408, 342.484, 358.852

型検査

比較対象 中央値 (ms) 各回の時間 (ms)
vue-tsc 6754.668 6435.819, 6754.668, 6772.635
verter-tsc 2079.699 2079.699, 2075.939, 2102.418
Vize check (1T) 2025.704 2025.704, 1996.936, 2046.702
Vize check (max) 1374.02 1384.116, 1332.651, 1374.02

Vite ビルド

比較対象 中央値 (ms) 各回の時間 (ms)
@vitejs/plugin-vue 1656.557 1656.557, 1600.439, 1730.685
@vizejs/vite-plugin 889.18 889.18, 881.988, 947.765

Nuxt ビルド

比較対象 中央値 (ms) 各回の時間 (ms)
Nuxt default compiler 3067.515 3083.42, 3067.515, 3057.014
@vizejs/nuxt 3213.326 3259.084, 3213.326, 3176.535

Musea

比較対象 中央値 (ms) 各回の時間 (ms)
options: preserve configured Rollup inputs 0.002 0.009, 0.002, 0.001
buildStart: scan + parse art files 16.52 16.817, 16.52, 15.88
load: generate art modules 9.163 11.451, 9.163, 8.979
transform: TS to JS on generated modules 4.048 4.048, 4.459, 3.772
musea-nuxt: resolve Nuxt mock specifiers 0.097 0.097, 0.102, 0.046
whole plugin: config + options + buildStart + load + transform 30.852 33.577, 29.868, 30.852