When comparing linting with --type-check and without, we see really big difference between runtimes. I shared cpu and alloc profiles with @camc314 on Discord. I would expect that times are going to be more close because we should consume same types and there should be some small overhead.
Versions:
"oxlint": "1.43.0",
"oxlint-tsgolint": "0.16.0",
There are no errors and warnings and for size comparison.
pnpm oxlint --type-aware --type-check --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src
Found 0 warnings and 0 errors.
Finished in 5.7s on 1078 files with 120 rules using 14 threads.
Here is benchmark between linting with --type-check and without.
Benchmark 1: pnpm oxlint --type-aware --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src
Time (mean ± σ): 1.976 s ± 0.050 s [User: 8.773 s, System: 0.922 s]
Range (min … max): 1.938 s … 2.049 s 4 runs
Benchmark 2: pnpm oxlint --type-aware --type-check --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src
Time (mean ± σ): 6.122 s ± 0.088 s [User: 11.616 s, System: 1.102 s]
Range (min … max): 6.033 s … 6.207 s 4 runs
Summary
pnpm oxlint --type-aware --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src ran
3.10 ± 0.09 times faster than pnpm oxlint --type-aware --type-check --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src
When comparing linting with
--type-checkand without, we see really big difference between runtimes. I sharedcpuandallocprofiles with @camc314 on Discord. I would expect that times are going to be more close because we should consume same types and there should be some small overhead.Versions:
There are no errors and warnings and for size comparison.
pnpm oxlint --type-aware --type-check --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src Found 0 warnings and 0 errors. Finished in 5.7s on 1078 files with 120 rules using 14 threads.Here is benchmark between linting with
--type-checkand without.Benchmark 1: pnpm oxlint --type-aware --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src Time (mean ± σ): 1.976 s ± 0.050 s [User: 8.773 s, System: 0.922 s] Range (min … max): 1.938 s … 2.049 s 4 runs Benchmark 2: pnpm oxlint --type-aware --type-check --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src Time (mean ± σ): 6.122 s ± 0.088 s [User: 11.616 s, System: 1.102 s] Range (min … max): 6.033 s … 6.207 s 4 runs Summary pnpm oxlint --type-aware --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src ran 3.10 ± 0.09 times faster than pnpm oxlint --type-aware --type-check --tsconfig=libs/nucleus/core/tsconfig.json libs/nucleus/core/src