This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-08-31
Channels
- # announcements (3)
- # beginners (139)
- # boot (28)
- # cider (40)
- # cljdoc (1)
- # cljs-dev (30)
- # clojure (61)
- # clojure-conj (1)
- # clojure-dev (113)
- # clojure-germany (4)
- # clojure-italy (29)
- # clojure-nl (3)
- # clojure-russia (2)
- # clojure-spec (38)
- # clojure-uk (53)
- # clojurescript (188)
- # core-async (4)
- # css (2)
- # cursive (7)
- # data-science (5)
- # datomic (14)
- # emacs (1)
- # figwheel-main (192)
- # fulcro (37)
- # jobs-discuss (1)
- # mount (4)
- # off-topic (47)
- # pedestal (7)
- # portkey (14)
- # re-frame (4)
- # reagent (22)
- # reitit (2)
- # remote-jobs (1)
- # ring (6)
- # shadow-cljs (65)
- # spacemacs (7)
- # specter (6)
- # yada (8)
I’ve reproduced that result locally perhaps half a dozen times now, and it is also appearing in the Coal Mine Travis CI results with the first part of Coal Mine previously taking around 14 minutes and now taking around 10 minutes. Perhaps something about the optimization plays well with HotSpot after the compiler has warmed up (theory based on the Coal Mine compilations being rather lengthy).
It could also be something about that first set of 59 problems that benefits from the optimizations.
If tickets are looked at today, these two are pretty cut-n-dry one-liners that would get unit tests / Canary passing again: https://dev.clojure.org/jira/browse/CLJS-2872 https://dev.clojure.org/jira/browse/CLJS-2877
I’ve started a project to benchmark compilation over time, using the same hardware and source bing compiled, but with the compiler varying. It will take some time to fill in the single-threaded numbers. Also, if you want to bench a candidate change, the benchmarks commands use git deps and are thus standalone and reproducible. https://github.com/mfikes/cljs-perf
Clojure’s printing machinery is gratuitous when all we’re doing is generating JS source
Yeah, focusing on the O part of I/O makes some sense: Watching it compile, it writes 1 to 2 orders of magnitude more bytes than the compiler reads.
Wow, that last commit did extremely well in single-threaded mode. https://github.com/mfikes/cljs-perf
pushed two more micro-optimizations - been a long time since I’ve seen the :none compile portion of script/test
< 10s, for that it looks like close to 10% gain
hrm interesting, it doesn’t look like for the end user at least that compiler perf has regressed that badly
I just checked 1.7.10 (to be fair pre-parallel build), which is 3+ years old, master is faster for compiling the basic sources