Should you buy the M1 Max Macbook Pro as a Software Engineer?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
so i got my hands on the new 14-inch m1 macbook pro a few weeks ago and i've been using it as my main daily driver since then for those who follow my channel you already know that i'm a full-time software engineer and obviously a part-time youtuber and to that end this macbook pro in the past few weeks has been used primarily to fill those two needs i'd say about 70 for software development 20 for audio and video editing and 10 for everything else let's find out how it has fared so far [Music] but before we get started let me briefly tell you about what this video will cover first off this will be a review primarily from the software engineering standpoint i will briefly mention my video editing experience on it but if you're here for silly benchmarks like cinebench or to find out how it fares when exporting 8k prores video or how many fps it musters up on tomb raider you'll be disappointed there are many other youtube videos that will tell you those things like i said before this video will focus mostly on this machine being used as a software development machine my goal is to help you answer is the m1 max macbook pro worth buying right now as a software engineer well with that aside let's get started so why did i get the m1 max macbook pro the first reason is the engineering behind this chip is pretty impressive how they have condensed every important component inside a single chip to reduce latency how they've used ddr5 memory for even faster performance or how they've opted to go with a very high bandwidth ssd similar to the ones used by the ps5 and the xbox series x in order to be able to swap between the ssd and the ram depending on resource priority only apple can do this not because their engineers are smarter than everyone else's or because they have unlimited money well money helps but because apple controls very tightly their end-to-end production from hardware all the way to software but regardless whatever it is it's an impressive feat of engineering the second reason is because i have too many machines for personal use i already had the 13-inch m1 macbook pro for video editing and music production i have a specked out desktop with an rtx 2080 that some of you have probably already seen on my desk setup video and then as a full-time software engineer i have a surface laptop for as well as a very high-end desktop to do my day-to-day job this is a lot of machines to maintain update and switch around and then if i travel i can't really edit my videos due to my desktop being at home or i always have to remote into my work desktop because it's in my office it's just a hassle first world problems but problems nonetheless so the idea that there could be one machine that could allow me to do all my work in one place and have great performance in terms of cpu gpu memory battery thermals and completely untether me from all my clunky large desktop machines allowing me to take all my work to wherever i travel it was just too good to pass but like we often say in life things that are too good to be true generally are so to find out whether this is just a pipe dream or actually possible i'll be testing this macbook pro on c sharp go java node python and rust and pit it up against a very powerful desktop which has a specked out xeon processor with 72 gigs of ram i will also build and compile a real world project to see which one fares better but not only that i've been using this macbook pro as my daily driver for the past two weeks so i'll share my findings based on that as well so let's start off by looking at the comparison between the m1 max and the desktop and after that i will share you my experience with it as a daily driver and then give you my final verdict for those that are interested the code we are running as a synthetic benchmark basically allocates a long-lived binary tree to fill out the memory then it deallocates it while doing so it walks the trees bottom up counting the nodes allocating and deallocating them this is simple enough that there is a fairly straightforward implementation on different languages but at the same time intensive enough on resources for us to be able to pick out the performance disparities between these machines we'll be going for a depth of 23 nodes for each of our runs so i've used remote desktop to remote into my desktop and that's set up with powershell over here and i've got the m1 mac with the terminal over here both of them have the exact same folder structures so we've got tests for c sharp go java node python rust and i also have a real world project that i think is more representative of a real world scenario to than just like running some one file benchmarks uh but regardless let's get started with c sharp sharp and then let's start each test in the desktop first and then see how the m1 mac does so let's run.net run now let's give it 23 as the depth of the tree and then do the same thing here and let's see how well they do looks like the m1 mac finished in about one minute 58 seconds and the desktop intel desktop did it in about 130 seconds which is about two minutes 10 seconds even on an intel based architecture even though it's running through rosetta it's still slightly ahead of the desktop all right let's move on to the next one which is go all right let's start with the desktop first so go run m1 with 23 nodes and then do the same thing in the m1 code one and one with 23 nodes all right let's see how this fares all right so the windows machine or the desktop finished in 26.4 seconds and the m1 mac finished in 23 seconds so slightly ahead all right the next one is java let's get started with the desktop first so [Music] java.cp.m1 with 23 nodes with 23 notes all right this is pretty quick so if you see here the desktop we finished in 5.5 seconds and in the m1 mac though it was twice as fast as 2.3 seconds let's now go to node.js let's start with the desktop first node m1 with 23 nodes node m1 with 23 nodes all right so the desktop completed 23 nodes in 30 seconds or 30.4 while the m1 mac did it in just 13 seconds that's amazing that's like just over twice as fast all right let's move on next one here is python so let's run that in the desktop first as well python m1 with 23 nodes python m1.5 with 23 nodes all right so the desktop version finished in 101 seconds versus the m1 mac finished in just over a minute which is about 70 seconds so the last one we have now is rust before we do we do the real world project here let's start with the desktop first cargo run with 23 nodes and then to the m1 [Music] let's see how long each of those take all right the m1 mac is done um in 29 seconds and the desktop finally finished in 39.5 seconds so all right so the last comparison i want to do is what i've called a real world here because this is a real world project um it's a project i used to work in it's called web hint um the cool thing about this is it's a mono repo so it has like gazillion subrepos inside of it so there's a lot of building compiling copying and things like that so that will give us an indication how different the times are for the m1 mac versus the desktop or comparable desktop is in real life right of course this is not an exhaustive test but i just wanted to throw in a real world project there to see how it actually performs all right i've already installed the dependencies for this project so it's ready to be built and i'll fire both build processes and let's see which one does better [Music] this will take a while because i remember even when i used to work on this this would take around five to six minutes so i'm gonna speed this up [Music] all right so the m1 mac is done at about 542 seconds so let's note that one down 542.89 seconds um the desktop is still going on so let's see how long that one takes and hopefully it's not that far off but you never know [Music] much later the desktop is finally done at 12 minutes 34 seconds which is 781 seconds total so that's as you can see a staggering difference almost like four and a half minutes slower than the m1 max so this is like more of a real world situation where you do something like this day to day you aren't going to run one file that branches out a binary tree or creates nodes in the depth of 20 or 30 levels every single day so as you can see the m1 max is easily and significantly faster than a powerful workstation with more than twice the amount of ram and not just in synthetic tests like binary tree one but even in a real project where it finished building and compiling almost twice as fast my experience with video editing has also been very similar this is twice as fast if not more than my i9 rtx 2080 desktop but that being said how this actually performs really depends on your use case the specs are there for sure and it lives up strongly against the hype however after using it for two weeks in real life application it hasn't really been all rosy see real life is much more complicated than branching out a binary tree or building one monorepo so here's some context i work on a very large set of distributed systems made up of over 100 microservices that get deployed to multiple regions and zones with multiple redundancies everything is containerized on multiple platforms each of which can be using an array of different languages and frameworks nodegorus.net to just name a few so when i work on a new feature or fix a bug i need to be able to deploy all of this locally on my machine to be able to debug a very complicated inter-service communication workflow that involves rest calls rpcs messages and so on and so forth not to mention dependencies are kind of strict i can't just install the latest version of everything to support the apple silicon so i started prepping the m1 max reluctantly i was hopeful but not very optimistic the early good news is that the most popular runtimes frameworks and supporting tools are now running natively on apple silicon the likes of node go rush docker so on and so forth the ones that still don't run natively will still run fine in most cases via rosetta for example.net in my case the setup went pretty smoothly up until the point where i had to pull in my docker images we didn't have any images for arm no big deal i can force docker to use amd64 images for the time being all good however docker uses qmu for amd64 emulation and there is a known blocking bug on qmu that prevents some dotnet binaries from running on the apple silicon and that's that i can't progress any further i just have to wait for the bug to be fixed so why am i sharing this story to let you know that there is a cost to being state of the art sure it beat my desktop at all synthetic tests and even in a real world project build but until it works in your case the specs and scores don't always give you the best picture at this point if you work on a large complex project chances are you'll likely run into a blocking issue the m1 max is a feat of engineering and an amazing piece of hardware heck i have yet to hear the fans even go on and the battery lasts an entire day of development meetings and emails without missing a heartbeat but given the newness of the architecture for software engineers my recommendation is to hold off on buying it unless you can verify that everything you need works 100 and you have a backup machine that you can fall back to should things not work out my guess is that in about six to 12 months a lot of things will have caught up to being native on apple silicon and at that time this will be the machine to beat i will definitely revisit this as a long-term review in that time frame in the meanwhile if you're on a specific tech stack and are hell-bent on switching to the new m1 mac and if you want me to set that up and try it out for you to see if it works let me know in the comments below if there's enough demand i may even make a video trying out different stacks and perhaps building and running some open source projects on this laptop if you have any other questions feel free to ask as well well that's all for today don't forget to like the video if you liked it and subscribe to the channel for more software engineering videos i'll see you in the next one cheers [Music] you
Info
Channel: Engineering with Utsav
Views: 74,362
Rating: undefined out of 5
Keywords:
Id: 5pWPcqU4lvk
Channel Id: undefined
Length: 15min 8sec (908 seconds)
Published: Thu Nov 11 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.