Thanks for the Docker showdown. Helps support my decision to order the 16" Max 64GB 4TB MacBook. Docker is one of those things that I've been wanting to get into ever since reading "The Phoenix Project". Since I'm retiring next year from the realtime Operations and support work I've been doing the last few decades, my interest in DevOps will also wane, but I think Docker is still one of the things that might still come in handy for some of the work I'm hoping to be doing as I move into "retirement" next year. Thanks again.
not sure but I think m1 pro would also give similar results since both have at max 10 CPU cores so yeah probably could save some money on chip and get more storage
I was thinking that the Pro would be a more efficient choice for me as well, but I am still leaning towards the Max. If I have to travel then it looks like I could also play WoW since it is M1 native (that is one of the only games I would care about "keeping up in" if I had to attend a work conference somewhere). I might just go all in.
@@AlejandroLZuvic you are right, I played with docker a little bit even on my 16GB 2012.5 MacBook Pro, but I will need the memory for some other things, too
Good vid! thanks. Do these tests include any volume mounts? I'd be interested if the known docker for mac slow file system issues are improved at all on these new chips.
@@Alperic27 maybe you can explain it better? AFAIK, x86 images run over QEMU, because as you surely know, these new Apple Silicon machines use an ARM instruction set.
@@AlejandroLZuvic my bad for the confusion… yes for m1-hosts to x86 containers docker and podman do the same thing: launch native qemu which internally uses hypervisor.framework to run a vm friendly linux kernel, then run the containers inside that vm. On x86 hosts, docker uses hyperkit to talk to hypervisor while podman still does the same as on m1 host (without cpu virtualization). But in all cases, we agree that containers do NOT execute on macos …. .. containers are a Linux ONLY concept that is based on kust configuring the linux kernel with different levels of internal isolation. technnically there are NO fully native containers (just arch-native or not)
great to see developer perspective. Video feedback would be clean the computer screens before doing tests so we are able to see them more clearly(fingerprints) and upgrade camera quality, 720p is a bit blurry. Keep up the good work!
@@vDungeon Nope, you can use QoS to schedule tasks for power cores or efficiency cores (or both, just like virtually any multiprocessing benchmark out there).
Will you be filing a bug report for the Docker project? They may definitely need your assistance with this issue because they may not have access to the actual hardware. The 2020 Apple M1 supported only 8 CPUs. BTW, which JDK are you using on the Apple M1 Max? Please keep the videos coming.
I am using Zulu JDK 11 (arm64). Unit tests and integrations are all passing and everything seems to be performing well. Tests are certainly running a lot faster.
I get the „give me all you can do sentiment“, but for me it would have been more interesting to see a harmonized benchmark with equal RAM and cpu cores (and breathing room for the host OS). Anyway, thanks for the time and effort you put into this! 👍
yeah he'd probably have better performance had he used less RAM for the images, to leave some room for the system. In fact, he did leave room for the system on the m1 max, which made the results even more unfair.
Anything node.js is also twice as fast on the m1 (i compare a i7 2018 32gb vs m1 pro). Even though javascript is single threaded, somehow apple silicon manages to distribute the load to ~2,5 cores per javascript thread. So e.g. if you run a webpack build you see between 150% and 250% cpu usage. Btw. the m1 pro & m1 max aren't faster single core then the last year m1. So if you don't do tons of graphics, don't need 8 cores, and don't care about the 120 hz / 1000 nits display, you could just go for the m1 macbook air for half the price.
@@Raynhardx Thanks for the reply. I was considering just getting the Air but there's one major downfall and that is it doesn't support more than one display. My setup at the moment are two 28 inch monitors. i'd love a machine that is as portable and fanless as the Air maybe the next iteration will give us the perfect portable developer machine. I'd like to see a test of the m1 pro with tow monitors connected and a build test. My current macbook pro's fans spin faster when I'm connected to the displays.
Nice job! It's great seeing Docker getting serious use on Mac M1. I'd love to do all my development on one of these new Macbooks. Looking forward to seeing what Mac Pro Apple Silicon can do!
Loving my macbook m1 max. But to be fair, why didn't you truly max out the intel macbook? You said "maxed it out with 4 cores". But that is not really true, since it has hyperthreading that should be 8 cores, and that could be seen in the docker gui. Sooo there was probably some more room for performance there to be honest.
@@vDungeon no, you can use 8 core since HY core shows as 2 cores to the OS. You clearly see the slider goes to 8 and the docker UI slider shows how many you have on the system.
Appreciate the video. I ended up just building a Ryzen 3700x 64gb ram machine last year. I am really curious if you use vscode and docker desktop? Using devcontainers in vscode is part of my workflow. Really tempted to get a Mac but the price just breaks my logical sense.
thanks a lot for this benchmark i was looking for developer review of those new mac books I have a question may I know why you choose m1 max over m1 pro ?
In another video he indeed explained he wanted all the RAM possible. I think for most web developers and such 16GB is ok and 32 is even enough for middle to large-ish projects.
It’s stated that it’s the exact same image/dockerfile. AFAIK it’s impossible to have a single dockerfile that handles both ARM and x86 so I bet it’s x86 via Rosetta Magic on all 3 systems
Have you tried the x86 Emulation of Windows 10/11 with UTM on the new Macbook? I‘m really interested in the resultsin terms of usability and performance, but so far nobody has tried it.
But this is only really part of the story right? Because as docker developers one of the most critical things if you're running multiple containers is that the load of running lots of containers starts to bog down the machine with too many processes which can't be served fast enough by enough memory, so it's almost like the extra memory and cores are going to enable an amazing level of multiprocessing performance that will eliminate some of the bottlenecks of running docker on mac, perhaps when hitting the disk too for mounted volumes. So whilst your test is a good one. I'd really like to see how much of a difference this machine makes when you're running a cluster of services, with mounted volumes, etc altogether. For me this is a painful bottleneck right now. My mac is severely slowed down by this lack of multiprocess performance as all the containers basically start to overwhelm the machine and interactivity starts to suffer. Know what I mean?
Oh yeah for sure. I wish there was a monorepo that I could pull down and run such a test. If you have some projects in mind I will start working on this. Else I can try and build a few up myself. Great idea!
Ha. Just an example from me. I use not more 1 container based on centos 7. Nothing runs inside. Just an empty os with a gcc toolchain. It takes 8 cores and 4Gb of ram. Cpu utilization is really small - docker consumes about 10% or even less. My MBP 16 i9 2.3 GHz with 32 Gb ram is heating to about 60 degrees of Celsius and runs coolers at about 60% of their rpms. Not so loud! But still not comfortable to use the laptop on my laps )
@@vDungeon do you mean you’ve setup docker for Mac with those resource limits? Cause if yes I don’t think the container is using that amount of cores and memory, just that it’s available to use if and when the container needs it. Maybe that container would run fine with 1 core and the minimum ram too. What would be a good test would be a bunch of symfony and laravel containers and a script to generate traffic to both of them of varying amounts and see how the cpu and memory usage is like. I’m choosing php, symfony, and laravel because of the ease of use and hitting the docker volumes for symfony cache has turned out to be a huge bottleneck for me in the past. All that annotation caching kills performance!
@@vDungeon this idle draining is spot on, I’m getting this a lot, I wonder if I can get 20 hours of battery usage when docker is running (which is basically all the time haha)
hah, what i noticed was, you were being quite careful when checking heat above keyboard on pro max, unconsciously trying to avoid touchbar not to interfere anything. been there done that
Thx a lot. How much RAM you think is needed for not full stack but only for backend or mobile? Having 64gb gives more memory channels and 400 gb/s.. and 32gb will not get so quick build timings?
Wouldn’t worry about that too much. It’s probably less than 10% difference (could even be within margin of error) and IMO shouldn’t dictate your decision on buying 64g or not. Just get what you reasonably expect to need in the next 5 years or however long you plan to keep this machine. Didn’t test this of course, so feel free to verify yourself, just an educated guess.
You mentioned that you do flutter development. Is there a chance that you could compare flutter app build and start emulation time? I’m curious how building flutter app on m1 chip works.
Have you hit total 64GB or Do you think 32GB would be enough as well to work on one project at a time ? Thinking on going to a M1 Pro with 32GB, but want to check since i'm also into same things, but with more focus on Backend and Desktop frontend in JVM languages.
In my experience it will work but you can never buy more soldered ram. If your testing large file attachments and your not streaming everything is on ram.. so app server, db server, xyz server, and 8gb file all in memory. Also most visualization software sticks your data in memory for speed.. you can get away with 32, but might as well go 64 for all the money your paying...
Great video. I work with Docker also but on a Windows laptop for various reasons. I've got quite a meaty, but heavy, laptop so would be good to compare what I have against your results. Could you share details of the load that you ran, are the tests and workload public etc? Many thanks.
Out of curiosity: on the M1 Max MacBook, did it build an ARM or an x86 container image? Also, in your earlier video you mentioned also running VMs. I would be interested to know which VMs, and what OS you run in them. For my work I need Linux running in a VM, and currently I'm using virtualbox for that, which does not (and probably never will) run on Apple Silicon, so I would be very interested to know about any alternatives such as Parallels and vmware and how well that works in practice.
Yes, built on ARM. Without ARM you notice some performance hits. Mostly during kickoff, it will take a while to start. I am running primarily Ubuntu containers in Docker. I am going to do a whole video on Linux VM's.
Do you ever need to boot up Windows for maybe one or two programs that are not compatible with macOS? I would love to see what the capabilities are if the M1 MacBooks running Windows (which I think has to be Windows for ARM?). I guess you would just run a VM for it but I have found when I need to write code that interacts with a CAN bus, it misses messages and can’t keep up unless the OS is installed natively.
What I found most astonishing really, is the difference (or rather the lack thereof) between the lowly i5 compared with the i9. Do you know why this is?
Docker is kind of like a virtual machine (it really isn't, although it uses virtualization). The idea is that you share an "image" of the project you're working on so other developers feed that image to Docker. Docker takes that image and builds "containers" in which the project runs. That way, many devs can have the same (virtual) environment no matter which OS or architecture their system is. It prevents many "in my machine works" discussions and it facilitates the setting up process at the start of a new project, ie when a new dev comes to the team.
Thanks for the tests. Appreciate if you can run a Java build benchmark like and open source project so we can compare against. I usually build wildfly 25. Takes 40 min on windows and 19 on 2018 6core MacBook Pro.
It seems a crazy idea to host everything on Mac, but sure, it can be used for a scientific research. Does your building procedure hit the network? It was surprise for me, but mine actually hits and sometimes that time is significant.
I suspect there would be big performance differences if they were all plugged in. M1 is going to run faster under battery than Intel. The question is, whether the M1 will run that much faster when they are all plugged in. Many people use Macbooks as mobile workstations.
I am more interested to compare M1Pro 16 GB to M1Max 32 GB. The issue is that if M1Pro does the work for developers, do we need to invest a lot more money to be on M1Max?
I recommend you to see how much RAM you use in your projects today and decide based on that. Bob's projects seem to be very large and it seems he develops in many technologies at once using many VM and containers all the time. I don't think most developers need more than 32GB and many (like web developers) will be fine with 16.
hey, is it possible to compare m1 macbook pro (or air) with m1 max ? I'm guessing since max and pro both has at most 10 CPU cores they'll be similar so yeah m1 machine (13" or Air) vs m1 max
in x86 each Physical core should be able to be mapped to 2 virtual core because of hyperthreading, I was expecting for 4 cores x86 the max should 8 vcores in Dockers, aarch64 (Apple Silicon) does not have this hyberthreading so the core to vcore is 1 to 1
Have you had a more realistic tests? Like unit tests which writing to databases and before each cleaning database? What about something on Python or Ruby?
Can you please specify the architecture of the containers? are those amd64 on both intel and M1 buils or amd64 vs arm64 ? if the architecture is different could you please make a video comparing same architecture buids?
@@D3VTec Thank you, thank you. it's much needed. It's obvious that anything that runs natively (even in a vm - as opposed to emulation) will work extremely fast. If you do need anything else the information is sparse and we expect disastrous results. And there's still a world of amd64 out there.
Thanks for a test! Could you check what amount of open tabs on chrome/brave will be a max before slowing down? I've tested that on M1 and it's about ~270. Could you also check how many VSCode instances it can run before bogging down? Would also be great once you hit the ceiling of your machine with your workflow to show us what was running. Thanks!
Sorry but that's kind of a dumb test. Running two VSCode instances, yeah OK. Running the max amount until the system slows down, who uses their laptop that way? In which way that'd a relevant benchmark? May as well ask how many movies it can play at once because you like to watch many movies at once.
Private repo unfortunately. I should have found something open source. I just already had this setup and running, so it made it easier to benchmark. I will run another test.
@@D3VTec for some people the question might be linux with an i7/i9 or m1 pro/max. So you could maybe try building this thing on a linux machine. This comparison is based on the fact lots of engineers use docker on linux as docker i optimized for linux
Great video but had to laugh We all have made RUclips content I can only imagine how many takes you made to create that first minute of this video lol Keep the great content coming
@@D3VTec I have been doing some research but without success. That's why I'm asking. Don't know if there are many people interested in this, so judge yourself if it's wort digging into.
Thanks for the dev perspective I have been looking for a video like this really testing web and mobile app development. Could you test a node js project or Django?
I ran an x86 Docker container on an M1 Air yesterday. (Reason: old versions of MySQL don't have ARM support.) It worked fine, since Docker on Mac is already running everything in a VM - it doesn't care which processor architecture to emulate. I'm reasonably sure they won't switch from VM to native OS anytime soon, since most of the packages installed via Docker are based on a Linux kernel and MacOS's kernel is not quite the same as a Linux one.
x86 container run transparently through qemu in docker, runs mostly fine on my m1 air. Some container don't work, but doesn't happen often, had a problem with nginx with lua under x86. So there can be some hiccups but they should be resolved over time.
Thanks for these tests. I would be curious if it would be possible to run the same test setup on a Linux based system (to factor out the slow MacOS file system performance). Just to get an idea how the M1 Max time compares to those native speeds on a Linux based system.
Thank you! If you can! Could you please run a build for an Unreal Engine 4 c++ example project named “shooting game”? I have i9 mbp with radeon pro 5600 m and it works terrible, windows machines with gtx 960 and i7 are giving stable max fps, but my mbp drops fps to 30-40 even if i set low resolution which is terrible.
Can you do the same benchmark with the 3 models but configure the 3 models with i5 docker setting maxed out (4 cores, 16 Gb memory, 2 Gb swap) I want to see if M1 Max add some optimization without using all the resources he has. And thank you, finally a true developer perspective benchmark.
It certainly does. The single thread performance on the M1 is about 30% better than the Core i5 and the i9 in this video. Consider you also have much faster RAM and SSD and you'll get better performance in the M1 even if you set all the machines to run with 4-cores. How much faster, that's something I really can't tell you without testing.
I would be surprised if this doesn’t work. I tested out my 240Hz 1080p gaming screen on my 2017 MBP and with a normal 4k60 USB-C -> DP adapter it works at full resolution and refresh rate. It wasn’t even listed on the adapter that it supports higher refresh rates. Bandwidth itself shouldn’t be an issue as it can drive 6k displays at 60hz which is much more data than 2k@120hz That being said, ofc I only tested it with one screen. But seeing that these M1 Pro/Max machines have 3 thunderbolt 4 hubs for the 3 ports I’d be shocked if that would make any difference whatsoever for the first 3 screens
Apple Silicon + docker is fantastic when there is aarch64 / arm64 support. But sucks so much when the image / application you need only supports x86. Ex: You can't install numpy when using python; QEMU emulation of x86 mostly works but painfully slow, battery draining, still fails in some cases. Apple did it so well we almost forget how much work must be done to port applications from one architecture to another.
Problem is each test heavily depends on your network condition when running it since they all download dependencies. I would have been interesting to make sure you already have all dependencies installed and just measure the test part.
Giving all memory to docker is not a good idea for benchmarking. That memory is how much memory the docker daemon takes, regardless of the tasks you run, and that memory is taken when you start docker, which means you are forcing swap memory on your macOS. it even failed in the M1 because it's shared memory, not conventional RAM. You should really re-run this leaving some memory out for the other things running on your OS.
thinking again now, even the worse performance can be partially justified by having MORE memory in docker on the Intel devices, because that is forcing swap, which is painfully slow. I think the Intel results will be better with less memory allocated for docker.
Love to see a developer perspective and not another video editor.
^^
why I don't watch MKBHD: he's like it has rounded corners, x ports, pink color, looks great, open apps oh this is fast(that's not how devs benchmark)
@@AbhimanyuAryan And he has the most subscribers because he is the lowest "coolest" denominator for people.
This ^
Big improvement, but performance still looks bad compared to other operating systems
It's refreshing to see a review that's relatable to work outside of video editing. These benchmarks are amazing.
Thanks Christian! They are great, need to keep capturing more. What kind of work do you do?
DevOps Engineer in the FinTech space
On your compose file, images are downloaded and/or builded from docker hub (x86 versions) ? Did you try images based on arm ? Thanks in advance
Thanks for the Docker showdown. Helps support my decision to order the 16" Max 64GB 4TB MacBook. Docker is one of those things that I've been wanting to get into ever since reading "The Phoenix Project". Since I'm retiring next year from the realtime Operations and support work I've been doing the last few decades, my interest in DevOps will also wane, but I think Docker is still one of the things that might still come in handy for some of the work I'm hoping to be doing as I move into "retirement" next year. Thanks again.
not sure but I think m1 pro would also give similar results since both have at max 10 CPU cores so yeah probably could save some money on chip and get more storage
I was thinking that the Pro would be a more efficient choice for me as well, but I am still leaning towards the Max. If I have to travel then it looks like I could also play WoW since it is M1 native (that is one of the only games I would care about "keeping up in" if I had to attend a work conference somewhere). I might just go all in.
I don't think you need 64 gigabytes to "start with Docker", not until you get to build really huge projects. But OK, it's your money.
@@AlejandroLZuvic you are right, I played with docker a little bit even on my 16GB 2012.5 MacBook Pro, but I will need the memory for some other things, too
Good vid! thanks. Do these tests include any volume mounts? I'd be interested if the known docker for mac slow file system issues are improved at all on these new chips.
Are those x64 containers running under docker’s qemu emulation, or are they native arm64 containers?
The first alternative is not realistic. what do u call ‘docker s qemu emulation’? … sounds like you may not understand docker as well as you think.
@@Alperic27 maybe you can explain it better? AFAIK, x86 images run over QEMU, because as you surely know, these new Apple Silicon machines use an ARM instruction set.
@@AlejandroLZuvic my bad for the confusion… yes for m1-hosts to x86 containers docker and podman do the same thing: launch native qemu which internally uses hypervisor.framework to run a vm friendly linux kernel, then run the containers inside that vm. On x86 hosts, docker uses hyperkit to talk to hypervisor while podman still does the same as on m1 host (without cpu virtualization).
But in all cases, we agree that containers do NOT execute on macos …. .. containers are a Linux ONLY concept that is based on kust configuring the linux kernel with different levels of internal isolation. technnically there are NO fully native containers (just arch-native or not)
@@Alperic27 thanks for the explanation :)
I love how you shot the talking portions, like an interview haha
great to see developer perspective. Video feedback would be clean the computer screens before doing tests so we are able to see them more clearly(fingerprints) and upgrade camera quality, 720p is a bit blurry. Keep up the good work!
Don't think that's the result of 720p, looks more like the focus was off in the recording
The bug is probably because the cores are of different types, 8 high performance and 2 efficiency cores
Yeah, Apple has this weird thing that the efficiency cores are only used for the System. Even in iPhones, Geekbench doesnt detect the efficiency cores
@@SatyamKumar-ts2jh Not really - you can literally see them while testing multicore performance in Cinebench R23.
Agree. I was thinking about the same!
@@HeavenSevenWorld a cinebench bug?)
@@vDungeon Nope, you can use QoS to schedule tasks for power cores or efficiency cores (or both, just like virtually any multiprocessing benchmark out there).
Thanks for these tests. I'd recommend you use the *time* command to measure the elapsed time. E.g. # time docker build -t ...
The time difference is so large that it does not really matter
Will you be filing a bug report for the Docker project? They may definitely need your assistance with this issue because they may not have access to the actual hardware. The 2020 Apple M1 supported only 8 CPUs. BTW, which JDK are you using on the Apple M1 Max? Please keep the videos coming.
I am using Zulu JDK 11 (arm64). Unit tests and integrations are all passing and everything seems to be performing well. Tests are certainly running a lot faster.
Loved seeing this comparison wow!
I get the „give me all you can do sentiment“, but for me it would have been more interesting to see a harmonized benchmark with equal RAM and cpu cores (and breathing room for the host OS). Anyway, thanks for the time and effort you put into this! 👍
yeah he'd probably have better performance had he used less RAM for the images, to leave some room for the system. In fact, he did leave room for the system on the m1 max, which made the results even more unfair.
Hi, Could you increase the screen resolution?
I would love to see more details on the laptop screens if possible
🤓
Can you try a large Typescript project build and VSCode editing and type inference please
That would be awesome
Anything node.js is also twice as fast on the m1 (i compare a i7 2018 32gb vs m1 pro). Even though javascript is single threaded, somehow apple silicon manages to distribute the load to ~2,5 cores per javascript thread. So e.g. if you run a webpack build you see between 150% and 250% cpu usage.
Btw. the m1 pro & m1 max aren't faster single core then the last year m1. So if you don't do tons of graphics, don't need 8 cores, and don't care about the 120 hz / 1000 nits display, you could just go for the m1 macbook air for half the price.
@@Raynhardx Thanks for the reply. I was considering just getting the Air but there's one major downfall and that is it doesn't support more than one display. My setup at the moment are two 28 inch monitors. i'd love a machine that is as portable and fanless as the Air maybe the next iteration will give us the perfect portable developer machine. I'd like to see a test of the m1 pro with tow monitors connected and a build test. My current macbook pro's fans spin faster when I'm connected to the displays.
Nice job! It's great seeing Docker getting serious use on Mac M1. I'd love to do all my development on one of these new Macbooks. Looking forward to seeing what Mac Pro Apple Silicon can do!
Loving my macbook m1 max. But to be fair, why didn't you truly max out the intel macbook?
You said "maxed it out with 4 cores". But that is not really true, since it has hyperthreading that should be 8 cores, and that could be seen in the docker gui. Sooo there was probably some more room for performance there to be honest.
He was using 4 cores for i5 which is he maximum there and 8 cores for i9 which is also maximum here.
Well he did same the “same”. But at the end he clarified as maxed out
@@vDungeon no, you can use 8 core since HY core shows as 2 cores to the OS. You clearly see the slider goes to 8 and the docker UI slider shows how many you have on the system.
To be honest comparing 4 cores to 8 cores makes no sense to show the leverage of the per actual per core performance.
You're right but to be fair I don't think HT can really make a huge difference.
Thank you for sharing, I would like to see a comparison between The M1 Max and M1 Pro for Docker.
Appreciate the video. I ended up just building a Ryzen 3700x 64gb ram machine last year. I am really curious if you use vscode and docker desktop? Using devcontainers in vscode is part of my workflow. Really tempted to get a Mac but the price just breaks my logical sense.
thanks a lot for this benchmark i was looking for developer review of those new mac books
I have a question may I know why you choose m1 max over m1 pro ?
Maybe because of RAM limit. M1 pro has up to 32 GB. In the first video he said that all his projects on 2019 Macbook pro could achieve 40 GB of memory
In another video he indeed explained he wanted all the RAM possible. I think for most web developers and such 16GB is ok and 32 is even enough for middle to large-ish projects.
Is Docker M1 native or run under Rosetta 2?
did you use x86 or arm containers for this test on the m1 max?
It’s stated that it’s the exact same image/dockerfile. AFAIK it’s impossible to have a single dockerfile that handles both ARM and x86 so I bet it’s x86 via Rosetta Magic on all 3 systems
@@FlorianWendelborn I also think its rather a x86 image. But I already build multiarch images with one Dockerfile.
Have you tried the x86 Emulation of Windows 10/11 with UTM on the new Macbook? I‘m really interested in the resultsin terms of usability and performance, but so far nobody has tried it.
why is your video blurry and 720p....? its 2021 you know?
But this is only really part of the story right? Because as docker developers one of the most critical things if you're running multiple containers is that the load of running lots of containers starts to bog down the machine with too many processes which can't be served fast enough by enough memory, so it's almost like the extra memory and cores are going to enable an amazing level of multiprocessing performance that will eliminate some of the bottlenecks of running docker on mac, perhaps when hitting the disk too for mounted volumes. So whilst your test is a good one. I'd really like to see how much of a difference this machine makes when you're running a cluster of services, with mounted volumes, etc altogether. For me this is a painful bottleneck right now. My mac is severely slowed down by this lack of multiprocess performance as all the containers basically start to overwhelm the machine and interactivity starts to suffer. Know what I mean?
Oh yeah for sure. I wish there was a monorepo that I could pull down and run such a test. If you have some projects in mind I will start working on this. Else I can try and build a few up myself. Great idea!
Ha. Just an example from me. I use not more 1 container based on centos 7. Nothing runs inside. Just an empty os with a gcc toolchain. It takes 8 cores and 4Gb of ram. Cpu utilization is really small - docker consumes about 10% or even less. My MBP 16 i9 2.3 GHz with 32 Gb ram is heating to about 60 degrees of Celsius and runs coolers at about 60% of their rpms. Not so loud! But still not comfortable to use the laptop on my laps )
@@vDungeon do you mean you’ve setup docker for Mac with those resource limits? Cause if yes I don’t think the container is using that amount of cores and memory, just that it’s available to use if and when the container needs it. Maybe that container would run fine with 1 core and the minimum ram too.
What would be a good test would be a bunch of symfony and laravel containers and a script to generate traffic to both of them of varying amounts and see how the cpu and memory usage is like.
I’m choosing php, symfony, and laravel because of the ease of use and hitting the docker volumes for symfony cache has turned out to be a huge bottleneck for me in the past. All that annotation caching kills performance!
@@chrisalexthomas about my config - correct. 8 cores are just to do make -j8 ))) but anyways it is consuming about 15% of my battery even in idle.
@@vDungeon this idle draining is spot on, I’m getting this a lot, I wonder if I can get 20 hours of battery usage when docker is running (which is basically all the time haha)
hah, what i noticed was, you were being quite careful when checking heat above keyboard on pro max, unconsciously trying to avoid touchbar not to interfere anything. been there done that
Thx a lot. How much RAM you think is needed for not full stack but only for backend or mobile? Having 64gb gives more memory channels and 400 gb/s.. and 32gb will not get so quick build timings?
Wouldn’t worry about that too much. It’s probably less than 10% difference (could even be within margin of error) and IMO shouldn’t dictate your decision on buying 64g or not. Just get what you reasonably expect to need in the next 5 years or however long you plan to keep this machine.
Didn’t test this of course, so feel free to verify yourself, just an educated guess.
You mentioned that you do flutter development. Is there a chance that you could compare flutter app build and start emulation time? I’m curious how building flutter app on m1 chip works.
Flutter development video incoming. Subscribe and you will be notified when it drops!
Have you hit total 64GB or Do you think 32GB would be enough as well to work on one project at a time ? Thinking on going to a M1 Pro with 32GB, but want to check since i'm also into same things, but with more focus on Backend and Desktop frontend in JVM languages.
In my experience it will work but you can never buy more soldered ram. If your testing large file attachments and your not streaming everything is on ram.. so app server, db server, xyz server, and 8gb file all in memory. Also most visualization software sticks your data in memory for speed.. you can get away with 32, but might as well go 64 for all the money your paying...
My macbook pro fan started just by looking at this video!
Haha 😂. Nervous laptop knows you are looking to upgrade.
Question is: what is the cpu architecture of the base container? Is it arm or x86?
exactly what I was looking for. Only video editors doing benchmarks... justifies my purchase of the m1 max lol!
Seems like the resource limit bug is fixed in build 4.1.1? I'm able to set my CPUs to 10 without any hickups.
Good review, but it should’ve included battery % used for each as well
Great video. I work with Docker also but on a Windows laptop for various reasons. I've got quite a meaty, but heavy, laptop so would be good to compare what I have against your results. Could you share details of the load that you ran, are the tests and workload public etc? Many thanks.
Out of curiosity: on the M1 Max MacBook, did it build an ARM or an x86 container image?
Also, in your earlier video you mentioned also running VMs. I would be interested to know which VMs, and what OS you run in them. For my work I need Linux running in a VM, and currently I'm using virtualbox for that, which does not (and probably never will) run on Apple Silicon, so I would be very interested to know about any alternatives such as Parallels and vmware and how well that works in practice.
Yes, built on ARM. Without ARM you notice some performance hits. Mostly during kickoff, it will take a while to start. I am running primarily Ubuntu containers in Docker. I am going to do a whole video on Linux VM's.
Do you ever need to boot up Windows for maybe one or two programs that are not compatible with macOS? I would love to see what the capabilities are if the M1 MacBooks running Windows (which I think has to be Windows for ARM?).
I guess you would just run a VM for it but I have found when I need to write code that interacts with a CAN bus, it misses messages and can’t keep up unless the OS is installed natively.
What I found most astonishing really, is the difference (or rather the lack thereof) between the lowly i5 compared with the i9. Do you know why this is?
Giving all RAM to Docker…. seems a quite strange idea 😂
Yeah, not a very standard thing to do for sure. I would adjust that test next time.
How many ssd does your m1 max have? And why you choose it? 1tb or 2tb or 4tb, etc.?
I’ve no idea what Docker is but I’m here to see M1 Pro/Max crush the competition!
Docker is kind of like a virtual machine (it really isn't, although it uses virtualization). The idea is that you share an "image" of the project you're working on so other developers feed that image to Docker. Docker takes that image and builds "containers" in which the project runs. That way, many devs can have the same (virtual) environment no matter which OS or architecture their system is.
It prevents many "in my machine works" discussions and it facilitates the setting up process at the start of a new project, ie when a new dev comes to the team.
@@AlejandroLZuvic Thanks for enlightening me. Sounds cool.
Thanks for the tests. Appreciate if you can run a Java build benchmark like and open source project so we can compare against. I usually build wildfly 25. Takes 40 min on windows and 19 on 2018 6core MacBook Pro.
which windows?
@@ggsay1687 window 10. Java 11. Dell 6core 9850h intel processor. 32gb.
It seems a crazy idea to host everything on Mac, but sure, it can be used for a scientific research. Does your building procedure hit the network? It was surprise for me, but mine actually hits and sometimes that time is significant.
Yes, both were hitting the network in this test. That for sure causes some discrepancy in the test.
I suspect there would be big performance differences if they were all plugged in.
M1 is going to run faster under battery than Intel.
The question is, whether the M1 will run that much faster when they are all plugged in.
Many people use Macbooks as mobile workstations.
I am more interested to compare M1Pro 16 GB to M1Max 32 GB. The issue is that if M1Pro does the work for developers, do we need to invest a lot more money to be on M1Max?
I recommend you to see how much RAM you use in your projects today and decide based on that. Bob's projects seem to be very large and it seems he develops in many technologies at once using many VM and containers all the time.
I don't think most developers need more than 32GB and many (like web developers) will be fine with 16.
hey, is it possible to compare m1 macbook pro (or air) with m1 max ? I'm guessing since max and pro both has at most 10 CPU cores they'll be similar
so yeah m1 machine (13" or Air) vs m1 max
in x86 each Physical core should be able to be mapped to 2 virtual core because of hyperthreading, I was expecting for 4 cores x86 the max should 8 vcores in Dockers, aarch64 (Apple Silicon) does not have this hyberthreading so the core to vcore is 1 to 1
Thank you Ahmed. This is something I certainly need to brush up more on. Please let me know if there's anything else you'd like me to take a look at.
Have you had a more realistic tests? Like unit tests which writing to databases and before each cleaning database? What about something on Python or Ruby?
Can you please specify the architecture of the containers? are those amd64 on both intel and M1 buils or amd64 vs arm64 ? if the architecture is different could you please make a video comparing same architecture buids?
Yes, I will be clearer about architectures in the next videos. This is a big feedback item from a lot of devs like yourself. Thank you Stefan!
@@D3VTec Thank you, thank you. it's much needed. It's obvious that anything that runs natively (even in a vm - as opposed to emulation) will work extremely fast. If you do need anything else the information is sparse and we expect disastrous results. And there's still a world of amd64 out there.
Can you also post the commands you've used so that I could compare against my macbook pro 2015 i7 16gb
Now that you had your MacBook for a few days, what’s your average battery life on battery?
Can you also do this with the charger connected?
Thanks for a test! Could you check what amount of open tabs on chrome/brave will be a max before slowing down? I've tested that on M1 and it's about ~270. Could you also check how many VSCode instances it can run before bogging down? Would also be great once you hit the ceiling of your machine with your workflow to show us what was running. Thanks!
Check out this review --> ruclips.net/video/raO3sIzRG9k/видео.html
Sorry but that's kind of a dumb test. Running two VSCode instances, yeah OK. Running the max amount until the system slows down, who uses their laptop that way? In which way that'd a relevant benchmark? May as well ask how many movies it can play at once because you like to watch many movies at once.
Can you provide the exact docker build command, so I can compare it to my time?
Can we get a link of the test repo to try it out on our machines?
Private repo unfortunately. I should have found something open source. I just already had this setup and running, so it made it easier to benchmark. I will run another test.
@@D3VTec for some people the question might be linux with an i7/i9 or m1 pro/max. So you could maybe try building this thing on a linux machine. This comparison is based on the fact lots of engineers use docker on linux as docker i optimized for linux
I am quite obsessed with the fan noise, I can't stand with it. Would you recommend this device to me as a developer?
you should take the 16" version, it has a better cooling compared to the 14", which leads to lower fan speed and such lower noise level
How fast is it on a Ryzen laptop running linux though?
Great video but had to laugh
We all have made RUclips content
I can only imagine how many takes you made to create that first minute of this video lol
Keep the great content coming
BTW, the docker cannot use 9 cores, it has to use at most 8, 2 efficiency cores are not allowed to be used in app, they are system cores
Thanks for the video! I'm looking for Tensorflow in Docker benchmarks for x86+RTX3080 compared to M1MAX (metal) all CPU&GPU laptops.
Do you have a repo I could check out?
@@D3VTec I have been doing some research but without success. That's why I'm asking. Don't know if there are many people interested in this, so judge yourself if it's wort digging into.
You may check Alexander Ziskind's channel. I think he benchmarked Tensorflow. It certainly is difficult to find tests related to machine learning.
Thanks for the dev perspective I have been looking for a video like this really testing web and mobile app development. Could you test a node js project or Django?
Is this possible to run x86 Docker containers on arm macos in the future?
I ran an x86 Docker container on an M1 Air yesterday. (Reason: old versions of MySQL don't have ARM support.) It worked fine, since Docker on Mac is already running everything in a VM - it doesn't care which processor architecture to emulate.
I'm reasonably sure they won't switch from VM to native OS anytime soon, since most of the packages installed via Docker are based on a Linux kernel and MacOS's kernel is not quite the same as a Linux one.
x86 container run transparently through qemu in docker, runs mostly fine on my m1 air. Some container don't work, but doesn't happen often, had a problem with nginx with lua under x86. So there can be some hiccups but they should be resolved over time.
But how much battery life did each of them use?
I have a battery specific test coming!
Thanks for these tests. I would be curious if it would be possible to run the same test setup on a Linux based system (to factor out the slow MacOS file system performance). Just to get an idea how the M1 Max time compares to those native speeds on a Linux based system.
Perhaps a more fair comparison would be running docker entirely in a linux VM. Not native, but AFAIK native linux on M1 is still in progress
why did you running tests with docker your pc? if ours app need running in cloudservers.
This automation has two Docker layers, the assembly layer and final image layer. Verification first, if that fails than no image for you!
can you build some OS projects like linux or gcc
That's an awesome idea. Point me to a repo!
Thank you!
If you can! Could you please run a build for an Unreal Engine 4 c++ example project named “shooting game”? I have i9 mbp with radeon pro 5600 m and it works terrible, windows machines with gtx 960 and i7 are giving stable max fps, but my mbp drops fps to 30-40 even if i set low resolution which is terrible.
YES, I would love to test that out. I will give it a shot ;-)
@@D3VTec we can have a separate chat to get a setup to compare,
Thank you that's very assuring
Hey, could you use a power cable cord ?
Can you do the same benchmark with the 3 models but configure the 3 models with i5 docker setting maxed out (4 cores, 16 Gb memory, 2 Gb swap)
I want to see if M1 Max add some optimization without using all the resources he has.
And thank you, finally a true developer perspective benchmark.
It certainly does. The single thread performance on the M1 is about 30% better than the Core i5 and the i9 in this video. Consider you also have much faster RAM and SSD and you'll get better performance in the M1 even if you set all the machines to run with 4-cores.
How much faster, that's something I really can't tell you without testing.
Is this test public? Can I run it locally?
Angular heavy production build!
Can you compare desktop and M1 Max Macbook Pro?
Sure thing, what kind of desktop are you interested in learning more about?
@@D3VTec I'm more interested android development on a desktop with an AMD Ryzen 9 and M1 Max Macbook Pro
Best reviews ever!
Loving the videos, though your camera was a bit out of focus.
Going to have this fixed in later videos. Video newbb.
Would have loved to see the temp readouts on the cpu as well as external temp measurements, just feeling the laptop for us is kind of subjective
Can you explain the bug?
I was wondering whether one could run 2 external displays at 120hz 2K resolution using the thunderbolt ports
I would be surprised if this doesn’t work. I tested out my 240Hz 1080p gaming screen on my 2017 MBP and with a normal 4k60 USB-C -> DP adapter it works at full resolution and refresh rate. It wasn’t even listed on the adapter that it supports higher refresh rates.
Bandwidth itself shouldn’t be an issue as it can drive 6k displays at 60hz which is much more data than 2k@120hz
That being said, ofc I only tested it with one screen. But seeing that these M1 Pro/Max machines have 3 thunderbolt 4 hubs for the 3 ports I’d be shocked if that would make any difference whatsoever for the first 3 screens
@@FlorianWendelborn Exactly what I thought, 2K@120hz should in theory be approximately the same amount of data transferred as 4K@60hz
Do you have the 14 or 16?
Great videos only issue is they're only 720p
Can you try on battery ? In reality the laptops will be plugged in!
For sure, battery test video coming soon.
m1 16gb mba probably would have the same performance tho?
You are my new laptop God. 💻
How has the battery life been for the m1 max?
Excellent. Seeing double the battery performance, but I still have more testing to do.
Does the intel have hyperthreading ?
Yes it does. So I have learned since posting the video.
I am using 2018 15 inch, and I have to run Android, ios, web and backend at once for testing and my macbook tries to kill me and goes full helicopter.
great video
Awesome!
Apple Silicon + docker is fantastic when there is aarch64 / arm64 support. But sucks so much when the image / application you need only supports x86.
Ex: You can't install numpy when using python; QEMU emulation of x86 mostly works but painfully slow, battery draining, still fails in some cases.
Apple did it so well we almost forget how much work must be done to port applications from one architecture to another.
Ah, no numpy? My main libraries are numpy/pandas/pyarrow/turbodbc/pyspark/dask/airflow. I wonder how well things would run...
I'm using a 2019 16-inch i7 MBP for iOS and sometimes I swear it's more room heater than a laptop. And stuttery as hell while running simulators.
My experience exactly. Doesn't really matter what the configuration is, the < 2019 gen would overheat under mild tasks.
Great video but poor image quality somehow.
Thanks for the feedback. Improved it in most recent releases.
Please 1080p videos 🙏🏻
Wouldn’t mind 4K either :)
Problem is each test heavily depends on your network condition when running it since they all download dependencies. I would have been interesting to make sure you already have all dependencies installed and just measure the test part.
Giving all memory to docker is not a good idea for benchmarking. That memory is how much memory the docker daemon takes, regardless of the tasks you run, and that memory is taken when you start docker, which means you are forcing swap memory on your macOS. it even failed in the M1 because it's shared memory, not conventional RAM.
You should really re-run this leaving some memory out for the other things running on your OS.
thinking again now, even the worse performance can be partially justified by having MORE memory in docker on the Intel devices, because that is forcing swap, which is painfully slow.
I think the Intel results will be better with less memory allocated for docker.
I will adjust and run this test again. You're absolutely right!
Why are you giving ALL the memory to Docker? That makes no sense.
Yeah, wasn't thinking there. Will make an adjustment for next time.
Great vid, only it's 720p tho:/
whaaat? :O THANKS!! Now I need to sell my i9 MacBook :P
I may have to return my Macbook Pro 16 32gb when I get it and get the 64gb instead - Ugh.
Why? This information would be helpful for us all.
man why your video seems like blur and not high resolution, it is 2021, seems like the video quality is more like 2011. LOL
Apparently developers dont know how to focus a camera.
Haha, really old DSLR. I have a new one on order, next videos will have auto-focus so that the developer can't screw it up!