jarohen / flow

Lightweight library to help you write dynamic CLJS webapps
38 stars 7 forks source link

Vastly increased incremental compilation times #4

Closed jarohen closed 9 years ago

jarohen commented 9 years ago

Incremental compilation times (using lein-cljsbuild) are up to about 10s for a moderately-sized app. This problem didn't exist in 0.2.0-b2 but does in 0.2.0-b4 (and also didn't crop up while I was developing it)

J

jarohen commented 9 years ago

So this only happens in whitespace mode (with optimisations it's quick as a flash)

The time is nearly all taken on https://github.com/clojure/clojurescript/blob/9fd6bf5bd55421c3d5becacc5230ed661d6fb3c3/src/clj/cljs/closure.clj#L596, when the code is passed to the Closure compiler for the whitespace optimisation.

Trying a couple of approaches at the moment:

jarohen commented 9 years ago

Gone for option 3 - using 'none' optimisations in a sane way. Option 4 would be a lovely addition, if I/someone gets time.

I put some thought into 2 - the way Flow used to be architected (in particular, the :declarations part of the compiler) did get around a lot of these problems. It's doable under the new Flow implementation, but given I've got 'none' optimisations working, probably not that worthwhile.

Closing for now, further thoughts to come later!

Let me know below if this is a big impact - happy to pick up again if it affects others' usage.

James