Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #4096

N

Nicholas Kariniemi

Personal blog · blog.ndk.ioprogramming

Nicholas Kariniemi's personal blog at blog.ndk.io covers programming. Since 2015, 19 different Hacker News readers have linked it 29 times, most often “The (Clojure) "JVM Slow Startup Time" Myth”. The last post was in 2018, but the archive is still widely read.

Visit the blog
29mentions?
19HN people?
2015–2026first – last linked?
Links on Hacker News per year · peak 9 in 2017

Too few sampled comments (13) to say how often HN recommends it.?

Why HN links it

Linked mainly as a reference on why Clojure and JVM programs start slowly, with one commenter calling a post on Clojure load times on Android a good read.

Summarised by Claude from a sample of 13 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. /jvm-slow-startup.html
    3 people · 8 mentions · first linked 2016-01-20
  2. /2014/02/11/jvm-slow-startup.html
    3 people · 5 mentions · first linked 2015-06-10
  3. /clojure-bootstrapping.html
    3 people · 3 mentions · first linked 2018-07-20
  4. /clojure-bootstrapping.html
    2 people · 2 mentions · first linked 2016-01-20
  5. The (Clojure) "JVM Slow Startup Time" Myth
    2 people · 2 mentions · first linked 2019-03-24
  6. The state of Clojure on Android
    2 people · 2 mentions · first linked 2015-04-25

What Hacker News says?

  1. Yeah, I remember seeing The (Clojure) "JVM Slow Startup Time" Myth [1] in HN comments last week. [1]: http://blog.ndk.io/2014/02/11/jvm-slow-startup.html

    Comment linking /2014/02/11/jvm-slow-startup.html

    on “Larry Wall Unveils Perl 6.0.0”
  2. Submitted Clojure Compilation: Parenthetical Prose to Bewildering Bytecode (2014) as a story · 93 points

    HN discussion
  3. Well, if you create a lot of additional objects on startup then it will take some time. JVM startup is still fast. http://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “The JVM is not that heavy”
  4. Submitted Clojure Compilation (2014) as a story · 60 points

    HN discussion
  5. It is Clojure. It loads an additional runtime by itself. It is unfortunately not usable for CLI applications. Pure Java does the same thing in fraction of time. http://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “The JVM is not that heavy”
  6. Submitted The state of Clojure on Android as a story · 55 points

    HN discussion
  7. Another reason is that is doesn't do all the things that standard Clojure does, which are the actual cause for slowness, it is not the JVM. http://blog.ndk.io/2014/02/11/jvm-slow-startup.html

    Comment linking /2014/02/11/jvm-slow-startup.html

    on “ClojureScript Year in Review”
  8. Submitted Why CSP matters I: Keeping things in sync as a story · 5 points

    HN discussion
  9. Don't blame the JVM for what it is a Clojure implementation problem. http://blog.ndk.io/jvm-slow-startup.html http://martinsprogrammingblog.blogspot.de/2012/02/why-is-clo... If you program directly in Java it can be as fast as Nim or Go. Granted, if you want AOT to native code, your only option is a commercial JVM.

    Comment linking /jvm-slow-startup.html

    on “Clojure 1.8”
  10. Submitted Why csp matters as a story · 3 points

    HN discussion
  11. Here is the reason for the slow startup time. This is also why AOT compilation does not solve it. http://martinsprogrammingblog.blogspot.de/2012/02/why-is-clo... “[It] spends 95% of the startup-time loading the clojure.core namespace (the clojure.lang.RT class in particular) and filling out all the metadata/docstrings etc for the methods. This process stresses the GC quite a bit, some 130k objects are allocated and…

    Comment linking /clojure-bootstrapping.html

    on “Clojure 1.8”
  12. Submitted The (Clojure) "JVM Slow Startup Time" Myth as a story · 2 points

    HN discussion
  13. Yes, it's fun. I wrote a wrapper for playing Screeps with PureScript and a blog post about it here: http://blog.ndk.io/purescript-ffi.html .

    Comment linking /purescript-ffi.html

    on “Screeps – An MMO strategy sandbox game for programmers”
  14. > Try googling "jvm slow startup". Its slow because a bare bones hello world takes 40ms in Java instead of 1ms in C. Its "slow" relative to other languages, but its not really that slow over all. I can use mvn without noticing that its slow, but leiningen takes multiple seconds to run a command. Take a look at this image, taken from the link pjmlp posted: http://blog.ndk.io/img/jvm_vs_clojure.svg Note that the Cloju…

    Comment linking /img/jvm_vs_clojure.svg

    on “Closh – Bash-like shell based on Clojure”
  15. First of all, there are AOT native compilers for Java, making as fast to start as any other native compiled language. Second, it is a well known fact in the Clojure community since several years, that the blame lies in Clojure itself. http://blog.ndk.io/jvm-slow-startup.html https://dev.clojure.org/display/design/Improving+Clojure+Sta...

    Comment linking /jvm-slow-startup.html

    on “Closh – Bash-like shell based on Clojure”
  16. Which is a Clojure problem, Java doesn't suffer from it. https://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “Replete 2.0: ClojureScript REPL for iOS and Android”
  17. Briefly, the JVM starts very quickly. Most of the time is spent loading the clojure.core namespace. See http://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “JavaCPP”
  18. This high startup time in Clojure is a side-effect of the JVM. If you have a hello world program that does nothing it is indeed fast. If you are running Clojure you need to run at least clojure.core. Loading that is handled - surprise - by the JVM. As would be expected, if you run other implementations (like Dalvik), this can change dramatically (for worse, usually). So it is correct that loading the JVM itself is n…

    Comment linking /clojure-bootstrapping.html

    on “Using Clojure in the command line with Babashka”
  19. > compiler took forever to start because of JVM No, because of Clojure itself. It is time for people to stop spreading this. http://blog.ndk.io/2014/02/11/jvm-slow-startup.html

    Comment linking /2014/02/11/jvm-slow-startup.html

    on “LispyScript”
  20. Blame Clojure's implementation. The (Clojure) "JVM Slow Startup Time" Myth http://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “Macchiato – A way to build Node web applications using ClojureScript”
  21. Not it is not, blame Clojure implementation. The (Clojure) "JVM Slow Startup Time" Myth http://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “Macchiato – A way to build Node web applications using ClojureScript”
  22. The JVM startup is quite fast, and it can be made even faster when using a JVM that supports AOT compilation to native code. Slow startup of Clojure's code, it's Clojure own doing. The (Clojure) "JVM Slow Startup Time" Myth - http://blog.ndk.io/jvm-slow-startup.html

    Comment linking /jvm-slow-startup.html

    on “Macchiato – A way to build Node web applications using ClojureScript”
  23. The JVM isn't actually slow to start [1] (albeit it does start about 3x-4x slower than python, ruby, or node) [2]. Most of the slow startup in a JVM-based application is in classloading [3] or waiting for your chosen framework to initialize [4] before the control is handed to your custom code. [1] https://purelyfunctional.tv/article/the-legend-of-long-jvm-s... [2] https://dev.clojure.org/display/design/Improving+Clo…

    Comment linking /clojure-bootstrapping.html

    on “How Four Native Developers Wrote an Electron App”
  24. Clojure startup time is only partly related to JVM startup time, which is ~60ms[1][2]. The reason Clojure startup is slow is because Clojure requires a very elaborate initialization. OTOH, the Erlang VM (BEAM) is much, much, much slower than the JVM (Hotspot, at least). [1]: https://blog.ndk.io/clojure-bootstrapping.html [2]: http://clojure-goes-fast.com/blog/clojures-slow-start/

    Comment linking /clojure-bootstrapping.html

    on “Command-line apps with Clojure and GraalVM: 300x better startup times”
  25. No, it is because Clojure is badly implemented. Don't blame the JVM for Clojure's quality of implementation. http://blog.ndk.io/2014/02/11/jvm-slow-startup.html

    Comment linking /2014/02/11/jvm-slow-startup.html

    on “ClojureScript on Android”
  26. It's not just the JVM, clojure itself takes a while to set itself up http://blog.ndk.io/2014/03/12/clojure-android-startup-benchm...

    Comment linking /2014/03/12/clojure-android-startup-benchmarks.html

    on “ClojureScript on Android”
  27. http://blog.ndk.io/2014/02/11/jvm-slow-startup.html 40ms sounds okay for me, even for most command line tools. Oh and I most probably don't get a segmentation fault ;-)

    Comment linking /2014/02/11/jvm-slow-startup.html

    on “A persistent key-value server in 40 lines and a sad fact (2014)”
  28. ffreire · 2015-04-29Recommends
    Were you perhaps talking about this article [0]? If not, it's a good read about the state of Project Skummet and improving Clojure load times on Android. [0]: http://blog.ndk.io/2015/04/23/state-of-coa.html

    Comment linking /2015/04/23/state-of-coa.html

    on “Show HN: Effective java – A tool to explore your Java code written in Clojure”
  29. > There are, however, a few drawbacks to the Java virtual machine, which Clojure traditionally runs on. From my experience, many developers, fairly or not, have an issue with requiring the JVM, and shy away from Clojure because of startup time, a somewhat heavyweight runtime, and perceived bootstrapping complexity. This used to be discussed in the past and it has been proven that the culprit is the clojure implement…

    Comment linking /clojure-bootstrapping.html

    on “Clojure in the age of language models”

Search all of HN for blog.ndk.io

Linked by the same people?