I went from a 2012 retina macbook pro to a maxed out (except storage) 14" M1 Max. The performance difference keeps blowing my mind on a daily basis. One Android project I sometimes work on took ~45 minutes for a release build on the old one but only 11 on the new one — and as it turns out I had spotlight indexing stuff in the background the whole time, and the SDK is still x86 so it runs through emulation. Fans do spin up sometimes but you have to try really hard to make it happen. On the old macbook the fans were spinning literally all the time and the CPU temperature has never fallen below around 60° on idle. That part of the case above the keyboard was always hot to the touch, on the M1 it's barely warm.
Do we have any thermal paste or other solution that works for 5+ years without degradation? ( I think I looked into this before but I forgot the answer )
I did clean it kinda regularly and did replace the thermal paste once. It stopped throttling when I put it on a stand to provide some airflow from below.
Part of that is Intel cannot get to low enough wattage on their mobile chips to sustain anything more than a quad core for very long. AMD is beating them but ARM is in a league of its own after decade+ of mobile focused development.
I'm excited to see how this changes x86 systems, mobile and desktop.
I ran this build once again now making sure nothing heavy was running in the background. It took 11 minutes and 5 seconds. The fans did audibly spin up and all CPU cores were 100% loaded (asitop output: https://i.imgur.com/OY36RVB.png). Here's the breakdown of how long each build step took: https://i.imgur.com/TcdfA4L.png
Do keep in mind though that the NDK (which takes like 90% of the build time) is still built for x86. So the 4x difference is mighty impressive when you consider that you're comparing an old x86 CPU running its native code to ARM emulating x86, even if doing so via translation.
Hm, no, android studio itself runs natively, and the JDK I'm using is native too, from adoptium.net. Most android build tools (d8, r8, etc) are written in java so they run natively. Building the java part in any project is really fast. Like, freakishly fast. 3 seconds to compile a thousand classes, WAT?!
Isn't C++ compilation mostly single-core-bound still? Of course it does compile as many files in parallel as there are cores, but it's not possible to compile a single file in multiple threads.
You haven't seen most Android projects that have a massive legacy module that Gradle spends 5 minutes compiling and doing nothing else. Seeing those 7 lines say IDLE is a daily experience
There is a lot more in single core performance then just clock speed, in fact ipc is even more important then clock speed when it comes to single core computing
Not surprising as Moore's law had stopped applying to CPU. Assuming each year CPU gets 20% improvement, from 2012 to 2021 the latest cpu is 5x more powerful than the old one. Considering 30% performance loss for converting x86 instructions to ARM, 4x is a reasonable number.