Apple Silicon M1 vs Intel i9
In this article, I will break down some more advanced concepts like Apple Silicon and how to run performance benchmarking on your machine.
I will tell you how processor architectures differ and how those differences affect our productivity as developers.
I’ll tell you what the Apple Silicon Chip and a refrigerator have in common. Then I’ll also share some of my own experiences using developer tools and build execution on the First Generation Apple Silicon Chip called the M1 chip compared to the Intel chip.
Before running into the comparison, you should know a little about how a CPU works?
Apple M1 vs. Intel i9
First and foremost, I want to say that my productivity as a developer depends less on processors inside my computer and more on how much coffee I had.
But, aside from human factors, let’s dig deeper into why the new Apple silicon machines have been kicking up a storm and changing the industry and software development.
Spoiler alert: The M1 machines have been beating the Intel machines in pretty much every build test I’ve thrown at it, except a couple. But it’s not all roses, and I’ll talk about some disadvantages later too.
So, why is it so darn fast? The first point I want to discuss is the physicality differences of the new Apple Silicon versus the old Intel and AMD. But before that, let’s get to our refrigerator example.
What Apple silicon and your refrigerator at home have in common?
All right, imagine for a minute that you want to make a turkey with cheese sandwich, you go over to the refrigerator, and in one place, you have the turkey breast, the cheese, the mayonnaise, the mustard.
All those ingredients are right there in one place, and you don’t have to run around the house to gather them. You don’t have to drive to many stores to pick them up, which saves you lots of time and energy.
This kind of efficiency can be found in the new Apple silicon chips because they aren’t just a new processor. Apple silicon is a collection of many chips housed inside one silicon container, and this type of system is known as a system on chip or sock, and it’s essentially an entire computer on one chip.
The main CPU, the GPU, the IO Controller, and the ML Engine are all co-located.
So when the task is to make an electronic sandwich, in other words, to do some work that involves all these different components. A system on a chip will be a lot more efficient in terms of energy usage, using only a tiny bit of power.
At the same time, it’s going to be faster than, say, a typical machine that has all the components separate.
Intel-based machines have a CPU that’s a single chip, and memory is located somewhere else on the motherboard, and the IO is somewhere else. The individual components might be even more powerful than those available at the moment on the latest Apple silicon-based machines.
But that comes at a cost since these powerful components are like supermarkets that carry different sandwich ingredients. As a result, when you want a sandwich on an Intel machine, you’ll have to drive all over town because one store will have the turkey, another store will have the cheese, yet another store will have the mayonnaise.
Each store might be good at its process and have the best ingredients. Each store also takes a lot of power to run. Losing out on the efficiency, and since all you want is to make a simple sandwich, you’re wasting a ton of time and energy picking up the ingredients from all the different stores.
Of course, some might say the drawback with the system on chip design is that (at least for now) with the current selection of Apple, you won’t be able to upgrade or change any of the components.
You get what’s on the menu, and that’s it, but that’s not news to most people familiar with the Apple ecosystem.
Once you accept that idea, you might even see the benefits of having a more efficient design where all the components are on one chip, and they outweigh the cons and still provide better performance than the alternative.
Okay, that’s enough about the food so let’s talk about how this affects real-world development workflows?
So I’ve been doing a bunch of developer-focused tests on the latest Apple silicon machines and comparing them to other machines like the Intel max and PC machines.
In general, the new design has been showing great promise for my workflows as a developer. Now there are many technology stacks that developers use, of course, and I’m trying builds in a few of them.
Speedometer 2.0 (Browser app)
It uses demo web apps to simulate their actions, such as adding to-do items, you visit the app in a browser of choice.
I tried chrome for this. The automated test runs through a collection of applications built with more popular UI frameworks like Angular, React, Amber, even Vanilla JS, jquery, and many more.
Then this test reports the results as a single number when it’s done. This number represents the runs per minute, and the higher, the better. When finished, I found that it had significantly more iterations on the M1.
While my 16-inch MacBook Pro with the Intel Core i9 processor beat the MacBook Air with the M1 chip, it didn’t do so by a lot.
Considering the price differences between these machines and the fact that the M1 stayed cool throughout the test, plus the battery hardly even took a hit on the M1. You might be thinking whether the extra few seconds saved while running this benchmark on the Intel i9 is worth the money.
So, running benchmarks is often very telling, but it doesn’t necessarily line up with real-world scenarios.
That’s why I also like to conduct my tests, whether using my projects or other open-source projects out there.
In my test, the build that took about three minutes on each machine only differed in build time by tens of seconds, with the M1 MacBook Air beating out the Intel MacBook Pro two out of three times.
Best & Worst Performing Developer Stacks for M1
However, if you’re building mobile apps for IOS for compiling C++ code, then this is where you’ll see a 40 to 50 percent improvement in build times. I ran a few Xcode builds, swift builds, some C++ algorithms, built openCV and WebKit.
In all those tests, the M1 came out on top. So what developer stacks benefit the least?
So far in my testing, any builds that have to do with running natively built software and building using native tools have absolutely destroyed Intel in speed and battery performance. Native being compiled for the Apple silicon architecture, even when running some software via Apple’s Rosetta.
That’s the translation layer that allows you to run Intel and AMD-based x64 and x86 programs on the new Apple hardware. Even some of those software packages ran better than on Intel, and that’s just amazing. But some workflows aren’t ready yet, in my opinion.
If you are an android developer, android studio and official android emulators work on Apple Silicon, but they’re currently using Rosetta for translations. While Rosetta is generally pretty good at running x86 targeted code on ARM chips, it’s not enough for the CPU-hungry android workflows, and I found the results to be not very usable at the moment.
The latest version of .Net, which is version 5 right now, isn’t fully supported to run on the ARM. Simple console applications ran just fine for me, but testing any web workflows like ASP.Net core doesn’t work yet.
Now it’s expected that by the end of this year, .Net six will come out. It’s in alpha right now, and we’ll have full support for the ARM. Until then, if you need to develop .net apps, I suggest using a PC with windows.
Oh, and if you think you can use a virtual windows machine, I’ve tested this as well. Parallels are the only vendor that currently supports the M1 chip to create a virtual windows environment. But the issue is that the windows guest operating system for ARM is still relatively immature and needs a lot of work.
Also, Visual Studio 2019, the latest visual studio offering from Microsoft, is unfortunately not compatible with ARM. My test is not stable, even using the built-in windows translation of x64 software to run on ARM hardware.
For game developers that use Unity, I’m pleased to say that it works surprisingly well on Apple Silicon via Rosetta. However, it’s not as performant as running natively on x86, but they’re working hard to get out as soon as possible.
Overall, Apple Silicon has boosted many workflows for developers and other professions and eventually even gaming. With the M1 tests, we see the improvements with just their entry-level machines.
The upcoming second and third-generation Apple silicon machines will be even more performant, and I can’t wait to see that. I think it’s really going to help us as developers move to the next level, and I think it’s just going to lift the entire industry.