Live data from Hacker News

How fast does Java compile?

mill-build.org

11–20 of 76 posts

Re: How fast does Java compile?

#12
post #6

Author here, hope people find this article interesting!

"From this study we can see the paradox: the Java compiler is blazing fast, while Java build tools are dreadfully slow."

Hi, nice article! I wholeheartedly agree with the conclusion after 10 years of fighting with maven for performance gains (that I always measured in minutes not seconds).

Slow feedback cycle is the root of all evil.

Re: How fast does Java compile?

#13
post #8

How fast does Golang compile? https://www.octobench.com/

Huh, so for anyone interested but did not have the time to do the comparison of the two links of OP and parent post: * java (on a cold jvm): 18.000-32.000 line per second on a single core * java (on a hot jvm): 102.000-115.000 line per second on a single core * golang: 28.000 line per second on 12 core

Pretty impressive numbers, although it’s fair to say here that while Go comes with its own build toolset, pretty much no one uses plain javac to compile stuff. It’s almost always either Gradle or Maven and as the article hints they slow down builds a lot.

> From this study we can see the paradox: the Java compiler is blazing fast, while Java build tools are dreadfully slow. Something that should compile in a fraction of a second using a warm javac takes several seconds (15-16x longer) to compile using Maven or Gradle.

edit: typos

Re: How fast does Java compile?

#14

I thought java was tokenized, not compiled. That's why you need their runtime environment isn't it?

We used to have Java CPUs

https://en.m.wikipedia.org/wiki/Java_processor

The JVM is just to run the code on other systems, and is the most common way of running compiled Java code.

Re: How fast does Java compile?

#15
post #8

How fast does Golang compile? https://www.octobench.com/

Huh, so for anyone interested but did not have the time to do the comparison of the two links of OP and parent post: * java (on a cold jvm): 18.000-32.000 line per second on a single core * java (on a hot jvm): 102.000-115.000 line per second on a single core * golang: 28.000 line per second on 12 core

Yes but reality is even worst maven projects take f*"* eternity like the post says, you have tens of atomyse package that make simple task that should take seconds take minutes, while the fast in go is not only the compilation time, but that 28000 is in real word case,at least it'd feels like this for experience.

Re: How fast does Java compile?

#16
post #4

How fast does Golang compile? https://www.octobench.com/

How fast does Rust compi..... I better not actually.

Why? I'm quite curious. There aren't any good benchmarks on the internet, especially ones comparing it to other languages. I'd love to actually see some real numbers showing how far off it is from Java or Go (I don't doubt it is slower than Java or Go, as it is a much more sophisticated language).

My anecdotal evidence suggests it is not as slow as many think. It compiles a 500k LoC (that's count of all code in dependencies) project in ~10s on my M2 Pro.

Re: How fast does Java compile?

#18
post #4

Earlier quoted context omitted.

How fast does Rust compi..... I better not actually.

Why? I'm quite curious. There aren't any good benchmarks on the internet, especially ones comparing it to other languages. I'd love to actually see some real numbers showing how far off it is from Java or Go (I don't doubt it is slower than Java or Go, as it is a much more sophisticated language). My anecdotal evidence suggests it is not as slow as many think. It compiles a 500k LoC (that's count of all code in depen…

Subjectively, not baked by any science, the Linking step is the worst, even with mold.

Re: How fast does Java compile?

#19
post #13
post #8

Earlier quoted context omitted.

Huh, so for anyone interested but did not have the time to do the comparison of the two links of OP and parent post: * java (on a cold jvm): 18.000-32.000 line per second on a single core * java (on a hot jvm): 102.000-115.000 line per second on a single core * golang: 28.000 line per second on 12 core

Pretty impressive numbers, although it’s fair to say here that while Go comes with its own build toolset, pretty much no one uses plain javac to compile stuff. It’s almost always either Gradle or Maven and as the article hints they slow down builds a lot. > From this study we can see the paradox: the Java compiler is blazing fast, while Java build tools are dreadfully slow. Something that should compile in a fraction…

I'd be curious to see what the slowdown is, because my gut feeling is that it simply comes down to QoL stuff tools like maven do. If we keep it to compiling only, stuff like resolving dependencies from the pom.xml and such.
Post reply on HN