This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-11-17
Channels
- # admin-announcements (9)
- # beginners (96)
- # boot (77)
- # cljs-dev (23)
- # cljsrn (18)
- # clojure (206)
- # clojure-austin (7)
- # clojure-conj (5)
- # clojure-japan (7)
- # clojure-poland (13)
- # clojure-russia (130)
- # clojure-taiwan (1)
- # clojurescript (125)
- # cursive (13)
- # data-science (2)
- # datascript (3)
- # datomic (2)
- # hoplon (24)
- # immutant (5)
- # jobs (4)
- # ldnclj (3)
- # ldnproclodo (2)
- # off-topic (2)
- # om (70)
- # onyx (12)
- # re-frame (6)
- # vim (2)
Parallel compilation does not result in excessive swap!
retries (confirmed with a bit of diagnostic logging https://github.com/mfikes/clojure/commit/39777c472436ae3778668834207e4f2071ff24cf)
[Parallel compilation] After closely watching correlation of ns compilation times and the YourKit memory view, I’m now fairly convinced that parallel compilation stops scaling as GC starts to dominate. In other words, you start to become ultimately limited by GC bandwidth, no matter how many cores you throw at it.
@dnolen, @thheller, right. I set it to 9GB and I also tried G1. G1 made it avoid pauses, but the throughout was a little slower than the default GC. FWIW YourKit wasn't showing "time in GC" like I expected. But I could see pauses when it cleaned up and the graph dropped, and blocks of ns compilations all slowed down together. Even without the pauses, I suspect everything related to memory just has to slow down as a result.
Is there any reason why .clj
files are not watched by cljs.closure/watch
? https://github.com/clojure/clojurescript/blob/master/src/main/clojure/cljs/closure.clj#L1981
@thheller: yes, but isn't that what you want? if you change a macro file, you want all the dependents recompiled.
Interestingly the curve in https://clojurians.slack.com/archives/cljs-dev/p1447683898000164 matches what you'd get from Amdahl's law if about 15% can't be parallelized.