If it takes a system 300ms to compile a function that prints &quot;hello&quot; then imagine how long it would take to compile a function that does something more sophisticated.<p>The &quot;hello&quot; benchmark is a fantastic benchmark for production-strength JIT-based runtimes because it tells you how long it takes for your system to warm up enough to be able to print something to the screen.  You don&#x27;t want this to be long.  I prefer for &quot;hello&quot; to take about 10ms or less.  In WebKit we have a few benchmarks that are the moral equivalent of &quot;hello&quot; and these are some of our most important benchmarks.<p>The reason why warm-up time is so insanely important is that any programming language, no matter what the domain is, will be used for the following things eventually:<p>- Tests.<p>- Data definitions in your language (moral equivalent of JSONP - every language&#x2F;runtime has to deal with something like this).<p>- Initialization.<p>All of these things comprise run-once code that tends to be large.  All of these things are important, even in math languages.  The glorious &quot;hello&quot; benchmark is an excellent proxy for the performance of these kinds of code.  So, I think that if Julia requires 300ms to run &quot;hello&quot; then they should make the &quot;hello&quot; benchmark into their primary optimization target.<p>Fortunately, it&#x27;s easy to make &quot;hello&quot; run fast: just tier your JIT.  This can be done with LLVM just fine, see <a href="https:&#x2F;&#x2F;webkit.org&#x2F;blog&#x2F;3362&#x2F;introducing-the-webkit-ftl-jit&#x2F;" rel="nofollow">https:&#x2F;&#x2F;webkit.org&#x2F;blog&#x2F;3362&#x2F;introducing-the-webkit-ftl-jit&#x2F;</a><p>Although we have since moved to using B3, LLVM was absolutely amazing for us, for the same reasons why it&#x27;s amazing for Julia: you get tons of optimizations for a lot of targets with little effort.  But you have to harness this power the right way.  You can&#x27;t fire up the full LLVM pipeline for code that runs once!  It&#x27;s a waste to unleash so many optimizations only to immediately throw away the result.