Re: Scripting with Clojure / "slow" boot time

2016-02-24 Thread ZhX Chen
Hi Alex, A couple of months ago I did an investigation on the slow boot time of `lein repl`. As you said, a lot of time (around 30% time on my computer) are spent on the features like completion. Also, I notice that there is a parsing library called `sjacket ` at

Re: Scripting with Clojure / "slow" boot time

2016-02-11 Thread Ryan Fowler
On Tue, Feb 9, 2016 at 12:36 PM, Alex Miller wrote: > I'm doing some research on slow Clojure boot time and would be interested > in collecting info about example use cases where it's been a problem for > people. > ​The following snippet helps me visualize load times. It

Re: Scripting with Clojure / "slow" boot time

2016-02-11 Thread Alex Miller
Nice! I have some stuff similar to this I use, but this is nicely packaged. On Thu, Feb 11, 2016 at 2:30 PM, Ryan Fowler wrote: > On Tue, Feb 9, 2016 at 12:36 PM, Alex Miller wrote: > >> I'm doing some research on slow Clojure boot time and

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Herwig Hochleitner
2016-02-10 13:06 GMT+01:00 Gary Verhaegen : > Please excuse the very naive question, but if the main problem seems to be > compilation of loaded namespaces, what about aot? Does it help at all? If > not, why? As far as I understand the problem, it does help a little

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Michał Marczyk
FYI, you may want to have a look at the following commits: commit 71930b6b6537a796cdf13c4ffa7cf93eb53b6235 Author: Rich Hickey Date: Mon Feb 28 17:55:14 2011 -0500 improve startup time via lazy defn loading commit c5681382da775e898915b17f3ab18b49c65359ec Author:

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Alex Miller
Lazy var loading is one of the things we're looking at. There is some work on this early in the "direct" branch (although at this point it's pretty out of sync with current code). On Wednesday, February 10, 2016 at 2:22:12 AM UTC-6, Mikera wrote: > > Good initiative, I've filled in a response

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Alex Miller
Parallel loading is something I've looked at a little bit. Unfortunately theory is easier in theory than in practice. :) While in many cases, it probably works fine, it's possible for there to be problematic ambiguity with which namespace is loaded first, especially for things that update

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Gary Trakhman
Personally, I've recently fought machine-specific AOT breakage issues by forcing maven-clojure-plugin to only compile a single entry-point namespace, making compilation order deterministic again. Arguably, it should have worked in any order but this specific issue was hard to track down. In any

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Marc O'Morain
On 10 February 2016 at 16:36, Alex Miller wrote: > Parallel loading is something I've looked at a little bit. Unfortunately > theory is easier in theory than in practice. :) While in many cases, it > probably works fine, it's possible for there to be problematic ambiguity >

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Alex Miller
Based on the responses, many people are seeing slow times with "lein repl", which is generally *much* slower than just starting a normal Clojure repl with clojure.main. If you want to compare, you can use lein to dump your classpath to a file (or the Windows equivalent of these): lein

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Marc O'Morain
Hi Alex, I've love to offer any help/test data on this that I can. At CircleCI we run (among other processes) a large Clojure app that takes 2 minutes to load on a top of line Macbook Pro, with Java 1.8 (Hotspot) . From my best efforts at profiling, this time is all spend in the Clojure Compiler

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Mikera
Good initiative, I've filled in a response to the survey. One thing that strikes me is that the main issue with loading time is the time required to transitively load and compile all the referred namespaces (which can be a lot in a big project...). This in turn may trigger class loading of

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Gary Verhaegen
Please excuse the very naive question, but if the main problem seems to be compilation of loaded namespaces, what about aot? Does it help at all? If not, why? As far as I know, the JVM already does lazy loading with Java classes essentially in the way that Mike described. On Wednesday, 10

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Daniel
Aside from the survey results, is it fair to say that more developers would be interested in Clojure on Android if they could use the blessed compiler? Are there any plans to look into the changes in project Skummet or breaking up the core namespace (like dunaj experimented with)? -- You

Re: Scripting with Clojure / "slow" boot time

2016-02-10 Thread Alex Miller
> On Feb 10, 2016, at 7:00 PM, Daniel wrote: > > Aside from the survey results, is it fair to say that more developers would > be interested in Clojure on Android if they could use the blessed compiler? Not sure what this refers to? Android is not the focus of my

Re: Scripting with Clojure / "slow" boot time

2016-02-09 Thread James Elliott
I don’t have any examples to share, I just wanted to thank you for doing this. It is really wonderful to see how responsive Clojure is to community input and concerns, and the launch of an effort like this so quickly in response to the survey feedback. On Tuesday, February 9, 2016 at 12:36:43

Scripting with Clojure / "slow" boot time

2016-02-09 Thread Alex Miller
I'm doing some research on slow Clojure boot time and would be interested in collecting info about example use cases where it's been a problem for people. http://goo.gl/forms/eSpn8M5FNB I'm not expecting to release the results in any formal way, mostly looking to use it to pull out particular