parcel-plugin-typescript icon indicating copy to clipboard operation
parcel-plugin-typescript copied to clipboard

Much slower than vanilla Parcel

Open robcrocombe opened this issue 7 years ago • 4 comments
trafficstars

I'm testing this and Parcel on a large Angular 1.6 TypeScript project - bundled to about 8MB uncompressed, 4.4MB compressed.

I have found that the warm startup (with a .cache folder) is about the same speed, ~6 seconds. Cold startup (without .cache) is ~35 seconds with vanilla Parcel, but incredibly slow with the TS plugin, ~320 seconds - 5 minutes!

Watching files is also slower, about 1-5 seconds with the plugin depending on the amount changed. It's usually 0.3-1.5 seconds with vanilla Parcel.

Is there anything that can be done to improve performance? Thanks

robcrocombe avatar Mar 09 '18 14:03 robcrocombe

Thanks for the report. Is it still slow if you set transpileOnly to true? (see Configuration)

~Also does it only happens in build mode or in watch mode too?~ Nevermind I misread, it happens in both.

fathyb avatar Mar 09 '18 14:03 fathyb

With transpileOnly as true, its about the same as vanilla Parcel, only slightly slower when watching files it seems. But I also see no benefit to that mode?

robcrocombe avatar Mar 10 '18 13:03 robcrocombe

Maybe investigate spawning type checker into a separate thread to avoid holding critical path for type checking

mohsen1 avatar May 27 '18 19:05 mohsen1

@mohsen1 this is already the case : https://github.com/fathyb/parcel-plugin-typescript/blob/develop/src/backend/worker/index.ts

I'm using the plugin on pretty big TypeScript projects at work (~400kLOC) and I get better performance than awesome-typescript-loader and ts-loader on CircleCI and our in-house Jenkins (never compared to vanilla Parcel given that type-checking is the slowest step on most ts projects).

This may be due to something else in your setup, if someone could provide a reproduction it would help me find out what's going on.

Keep in mind that TypeScript is almost (if not already) statically Turing-complete, if you use a lot of generics and infer it may slow down your build.

fathyb avatar May 27 '18 20:05 fathyb