Vize

Snapshot de benchmarks Blacksmith

Um único artefato versionado alimenta o README e todos os idiomas. A quantidade de arquivos é indicada em cada linha.

Ambiente Data Medições Aquecimentos
blacksmith-32vcpu-ubuntu-2404 (32 CPU) 2026-09-16T08:19:25.262Z 3 1

Actions · f9cc50ee2e2f · JSON

Medição Arquivos Ferramenta comparada Mediana comparada Vize 1T Vize max Razão
Compilação SFC 3,000 @vue/compiler-sfc (1T) 3.57s 835.3ms 65.0ms 54.8x
Compilação de SFC grande 1 @vue/compiler-sfc (1T) 61.4ms 16.3ms 15.2ms 4.0x
Tipos em SFC grande 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
Formatação 3,000 Prettier CLI 29.72s 1.07s 351.4ms 84.6x
Verificação de tipos 500 vue-tsc 6.75s 2.03s 1.37s 4.9x
Build Vite 1,000 @vitejs/plugin-vue 1.66s n/a 889.2ms 1.9x
Build 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

As razões da verificação de tipos comparam Vize e vue-tsc, o verificador que os projetos Vue usam hoje. O vue-tsc executa o compilador TypeScript em JavaScript enquanto o Vize executa o tsgo nativo, portanto a razão cobre toda a cadeia de ferramentas e não apenas a camada Vue; as tabelas por classe de motor do instantâneo completo classificam ferramentas do mesmo motor entre si para isolar essa camada. Cada execução cronometrada valida o trabalho de diagnóstico, mas a cobertura varia entre ferramentas. Essas razões não demonstram precisão equivalente nem uma melhoria sobre uma versão anterior do Vize. Comparadores rejeitados não recebem tempo publicado nem classificação.

Metodologia e resultados completos

Versões das ferramentas e checksums
Ferramenta Versão SHA-256 do binário
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

Backend: native TypeScript engine ready at /home/runner/_work/vize/vize/node_modules/@typescript/typescript-linux-x64/lib/tsc. Planted-diagnostic gating for the type-check rows lives in tools/benchmarks/scripts/check-gate.mjs (.github/workflows/check-bench.yml).

Validação do trabalho de diagnóstico

Tipos em SFC grande: classificação separada por mecanismo

Classe de mecanismo Variante Mediana Em relação ao mais rápido da classe
Mecanismo TypeScript JavaScript (tsc) vue-tsc 1.34s 1.00x
Mecanismo TypeScript nativo (tsgo) Vize check (1T) 186.4ms 1.00x
Mecanismo TypeScript nativo (tsgo) Vize check (max) 190.1ms 1.02x
Mecanismo TypeScript nativo (tsgo) verter-tsc 1.58s 8.48x

As razões comparam apenas ferramentas que usam o mesmo mecanismo tsgo nativo. A cobertura dos diagnósticos pode diferir; isso não demonstra precisão equivalente. O vue-tsc, que usa o mecanismo TypeScript JavaScript, aparece como referência de tempo da mesma execução, sem razão entre mecanismos diferentes.

Golar typecheck (pré-validação): rejeitado na validação; nenhum tempo ou posição publicado.

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) (pré-validação): rejeitado na validação; nenhum tempo ou posição publicado.

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'."]]}

Validação do trabalho de verificação de tipos (templates estritos; antes do aquecimento; diagnósticos conferidos a cada execução):

Variante Erros mínimos injetados Injeção no corpus Diagnósticos Código de saída SHA-256 dos diagnósticos
vue-tsc 4 aprovada 300 2 508e4fa9ce85b1cd8051ee934c78c5bc2a9dd3a8ac7ff4b44f3d8dcf7263a2eb
verter-tsc 4 aprovada 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87
Vize check (1T) 4 aprovada 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87
Vize check (max) 4 aprovada 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87

Verificação de tipos: classificação separada por mecanismo

Classe de mecanismo Variante Mediana Em relação ao mais rápido da classe
Mecanismo TypeScript JavaScript (tsc) vue-tsc 6.75s 1.00x
Mecanismo TypeScript nativo (tsgo) Vize check (max) 1.37s 1.00x
Mecanismo TypeScript nativo (tsgo) Vize check (1T) 2.03s 1.47x
Mecanismo TypeScript nativo (tsgo) verter-tsc 2.08s 1.51x

As razões comparam apenas ferramentas que usam o mesmo mecanismo tsgo nativo. A cobertura dos diagnósticos pode diferir; isso não demonstra precisão equivalente. O vue-tsc, que usa o mecanismo TypeScript JavaScript, aparece como referência de tempo da mesma execução, sem razão entre mecanismos diferentes.

Golar typecheck (pré-validação): rejeitado na validação; nenhum tempo ou posição publicado.

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) (pré-validação): rejeitado na validação; nenhum tempo ou posição publicado.

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'."]]}

Validação do trabalho de verificação de tipos (templates estritos; antes do aquecimento; diagnósticos conferidos a cada execução):

Variante Erros mínimos injetados Injeção no corpus Diagnósticos Código de saída SHA-256 dos diagnósticos
vue-tsc 4 aprovada 450 2 ca130bc55a0235c3dada35ca3a7aca8558f63858d7d03ec3ec586f4828773dd5
verter-tsc 4 aprovada 4250 1 7f6641e728fa345abc3ac7eebb7f77a5e694c0cdaf81bf951c8829c0b2c32cfe
Vize check (1T) 4 aprovada 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87
Vize check (max) 4 aprovada 0 0 6f6df0f8037998d14783ed2bdf8e9cf61e2837b6b595f5f53c8933069ef0dc87

Variantes e medições brutas

Compilação SFC

Variante Mediana (ms) Execuções (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

Compilação de SFC grande

Variante Mediana (ms) Execuções (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

Tipos em SFC grande

Variante Mediana (ms) Execuções (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

Variante Mediana (ms) Execuções (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

Formatação

Variante Mediana (ms) Execuções (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

Verificação de tipos

Variante Mediana (ms) Execuções (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

Build Vite

Variante Mediana (ms) Execuções (ms)
@vitejs/plugin-vue 1656.557 1656.557, 1600.439, 1730.685
@vizejs/vite-plugin 889.18 889.18, 881.988, 947.765

Build Nuxt

Variante Mediana (ms) Execuções (ms)
Nuxt default compiler 3067.515 3083.42, 3067.515, 3057.014
@vizejs/nuxt 3213.326 3259.084, 3213.326, 3176.535

Musea

Variante Mediana (ms) Execuções (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