Sprawdzam, dlaczego czas kompilacji dla mojego projektu Angular 2.0 TypeScript minął od około 4 sekund do około 15 sekund w stosunkowo krótkim czasie.Badanie długich czasów kompilacji TypeScript
Natknąłem się na bardzo przydatny, ale z pozoru nieudokumentowany przełącznik --diagnostics
.
Na przykład, oto co mi się podczas pracy na moim projekcie tsc --noEmit --diagnostics
teraz:
Files: 231
Lines: 50872
Nodes: 170067
Identifiers: 65994
Symbols: 7712123
Types: 407677
Memory used: 600554K
I/O read: 0.43s
I/O write: 0.00s
Parse time: 1.13s
Bind time: 0.34s
Check time: 10.17s
Emit time: 0.00s
Total time: 11.64s
Oto co mam kiedy uruchomić tego samego polecenia na wcześniejszej wersji projektu.
Files: 197
Lines: 30882
Nodes: 124208
Identifiers: 46201
Symbols: 5856945
Types: 10989
Memory used: 80412K
I/O read: 0.03s
I/O write: 0.00s
Parse time: 0.60s
Bind time: 0.27s
Check time: 0.93s
Emit time: 0.00s
Total time: 1.79s
Liczba Types
upadł droga w górę, a więc ma Check time
.
Czy można uzyskać bardziej szczegółowe/szczegółowe dane wyjściowe od --diagnostics
?
NodeJS v4.4.3, TypeScript v1.8.10. To jest mój tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"noImplicitAny": false,
"noEmitOnError": false,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"removeComments": false
},
"exclude": [
"node_modules",
"wwwroot",
"typings/main.d.ts",
"typings/main"
]
}
Dzięki. Używamy "gulp-maszynopis" (https://www.npmjs.com/package/gulp-typescript) do oglądania zmian. Obsługuje przyrostową kompilację. Nawet przy oglądaniu konsekwentnie uzyskuję od 12 do 18 sekund kompilacji. Ale kompilacja była szybsza i nie dodawano tak dużo kodu, a my dopiero zaczynaliśmy. Coś, co się zmieniło, musiało być przyczyną problemu, ale przeszukiwanie commit-by-commit byłoby bardzo czasochłonne. –
Próbowałem gulp-maszynopis i wbudowanego kompilatora Intellij Idea, ale było zbyt wolno, około 8 sekund po każdej zmianie, nie do przyjęcia. Teraz używam webpack i ts-loader z opcją transpileonly, czas rekompilacji wynosi około 0.5s. – kemsky