Hacker News new | ask | show | jobs
by spockz 1860 days ago
What workloads do you run? I’ve got a 16GiB M1 mbp and a 2019 maxed intel and when compiling Java/sbt projects the intel is significantly quicker, albeit also much loader and power hungry.
4 comments

As the sibling comment mentions, if you're running Intel JDK on M1 it will be slow. You can find M1 native JDK builds here: https://www.azul.com/downloads/?version=java-11-lts&os=macos...
Just for fun, Oracle has also started providing natively compiled EA builds of JDK 17: https://jdk.java.net/17/
Wow, based on the comments here I decided try out the native M1 builds of Azul.

I see a 4.1x speedup in compiling (including tests), excluding dependency resolution:

  Azul Native M1 java JDK11: 
   ./sbt "clean;compile;test:compile"  
     254.86s user 
     11.84s system 
     519% cpu 
     51.375 total
  Azul java JDK11: 
    ./sbt "clean;compile;test:compile"  
     490.04s user 
     59.48s system 
     269% cpu 
     3:23.81 total
That compiler most probably not native to m1 arm processor.
Indeed, I was using the GraalVM jdk11 build which wasn’t available in a native version indeed.
> when compiling Java/sbt projects

Are you comparing a binary being run under dynamic binary translation with a native binary?

Not really an honest comparison, if that's the case.

No idea if that's the case, but I wouldn't have expected Java of all things to be run under binary translation.
> I wouldn't have expected Java of all things to be run under binary translation

Why? The Java community has only just been working on ARM64 support at all over the last few years, and it's still a little limited, and macOS ARM64 support is only out a couple of weeks and only from non-Oracle third-party builders I believe.

You have to install a Java VM compiled for ARM such as the one made by Azul. If you just get the openjdk from the main website it is compiled for Intel and will be much slower.
> I wouldn't have expected Java of all things to be run under binary translation

Depends which version you have installed. It's a taken a while for the native versions to reach the mainstream channels, so unless you've specifically installed an M1 build you probably have an x86 build being run under translation.

Native support in the regular builds will arrive in september

https://openjdk.java.net/projects/jdk/17/