Transform Performance Slow
I have a small vite/vitest application with a handful of tests. The tests take a long time to cold-start and it appears they are getting slowed down by the typia transform: ~15 seconds for ~15 files.
Is there something that can be configured to make it transform faster, e.g. caching, parallelism or something, or is this perhaps a limitation of esbuild/tsc/vite? Any suggestions or additional information I can provide?
AFAICT I'm on the latest version of all relevant packages.
"typescript": "^5.6.2",
"typia": "^6.11.0",
"vite": "^5.4.4",
"vite-plugin-inspect": "^0.8.7",
"vitest": "^2.1.1"
I think this might be more relevant for unplugin-typia. https://github.com/ryoppippi/unplugin-typia/issues/334
you know what, I think it may be typia itself, I don't know?
I created a kind of subset of my setup in the typia playground
When I import this file and build it with my app, via vite, it takes ~1.5 seconds. ~1.5s is fine if this was the only file, but in my full (simple) app these add up to about 30s of additional build time 🎻😿. This file has no external deps (other than typia), so I'm starting to doubt my suspicion that it's an issue with the way the unplugin plugin sets up the ts context per-file (see issue I opened on the plugin).
What do you think @samchon, @ryoppippi?
@timoxley Wait, is unplugin-typia process every single file?
unplugin-typia skips processing a file without a keyword typia
@timoxley Wait, is unplugin-typia process every single file? unplugin-typia skips processing a file without a keyword
typia
It's processing all the files with the typia keyword, that seems to be working correctly.
It's processing all the files with the typia keyword, that seems to be working correctly.
Yeah, so idk why it slows so much.
Anyway, I reopen https://github.com/ryoppippi/unplugin-typia/issues/334 again. In this issue, we discuss typia's transformer itself. We'll discuss unplugin-typia's improvement in another issue!
I've tested using the plugin (unplugin-typia) and using the Generation method:
pnpm typia generate \
--input src/templates \
--output src/generated \
--project tsconfig.json
And the problem is the same on both: When the file containing all Typia methods is really large the generation proccess halt and eventually gives a JavaScript heap out of memory.
The scenario that I'm using Typia is to generate validation methods for each API request body and response object that comes from an OpenAPI document. So there are thousands of types to check and the generation proccess cannot finish.
It would be nice to have some kind of partial generation, where it would generate and save partial validators to free the memory.
Any news on this? I really like Typia, but it is has a drastic impact on performance for me. Every file not using Typia takes about 1ms to transform, while every file using Typia takes about 3 seconds.
Starting my dev server takes several minutes! 😧
I have the same problem, it is bearable for now, although very noticeable 'slowness'. I worry I might need to change to a different solution as it will become impossible when the project grows. Is there any kind of solution in the works?