Hi Ben,

Just a comment about this:

> We also need to investigate parallel builds again - we had previously run
into bugs here, but I didn’t take the time to investigate more fully.

We also had run into random bugs when using parallel builds, but since
CLJS-1614
was fixed (released in 1.8.51) we are using it in our medium-sized re-frame
app (with many dependencies) with no issue. Even though we don't have exact
metrics, I'd say it cuts down compilation time by 30-40% in my machine.

If you try it and still find any bug, I'd be interested in getting more
information about it :)

--
Nicolas


On Fri, Feb 10, 2017 at 12:42 PM, Ben Brinckerhoff <[email protected]
> wrote:

> First of all, thanks to everyone for their hard work on Clojurescript and
> related tooling. It’s an incredibly productive and reliable stack to use.
>
> I’m investigating ways to speed up compile times for a closed-source
> project. We have about 8000 Clojurescript LOC and 200 Clojure LOC (in src
> and test combined). Some very rough indicators: a fresh compile of our test
> build takes about 60s. A small change to a file with maybe 15 reverse
> dependencies takes about 12s using `cljsbuild auto`. We are using
> lein-cljsbuild 1.1.4 and clojurescript “1.9.293”.
>
> These times are pretty good, but of course speeding up compiles shrinks
> our feedback loop, both locally and on CI, where we do a number of fresh
> compiles for different builds. As a result, we want to see if there are
> things we can do to our code to speed up compiles.
>
> We have turned on the `verbose` and `compiler-stats` flags so we can see
> more information about compile times. We hope to upgrade to 1.9.456 soon so
> we can see per-file compile stats. We also need to investigate parallel
> builds again - we had previously run into bugs here, but I didn’t take the
> time to investigate more fully.
>
> Besides total LOC, are there other aspects of code bases that are known to
> slow down compiles? Perhaps macro expansion (we have a lot of core.async
> `go` blocks in some namespaces)? Perhaps the complexity of the dependency
> graph between namespaces? Something else? Has anyone else had experience
> altering a CLJS code base to improve compile times? Or tweaking compiler
> flags? `optimization` makes a big difference of course, but for my current
> investigation, I'm ignoring optimization time.
>
> Also, I noticed that Clojurescript performance is an idea for the Google
> Summer of Code https://github.com/clojars/clojure-gsoc-2017/blob/master/
> project-ideas.md#clojurescript-performance
>
> “There are many impactful enhancements we would like to make to
> ClojureScript with respect to both runtime and compile time performance …
> For compile time enhancements we should examine where parallelization, AST
> data representation changes, or more aggressive caching of intermediate
> artifacts may deliver faster development and production build time.”
>
> I did a quick search of Clojurescript for perf issues on JIRA, but didn’t
> see anything related to these (apologies if I just missed something
> obvious!). Is there a list somewhere of open issues that might improve perf
> in the compiler? Or are those ideas mostly in the “needs investigation”
> stage?
>
> Thanks very much!
> Ben
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/clojurescript.

Reply via email to