As an example, I worked a bunch on our PostgreSQL infrastructure, but we support 5 years of versions. So you have to CI/integrate your changes and test them across all 5 versions, every time you test. My machine could do this on the order of 2-3 minutes -- recompiling everything from scratch every time, and running all integration tests on all versions. There's no CI system or cost-effective cloud hardware that would have given me turnaround like that. In the end I was doing hundreds of builds over the course of just a few days.
In contrast, at $WORK we have a C codebase that takes < 1 minute to compile on my 4 core work laptop. YMMV.
When it was bad, it was so bad. I never wanted to know as much as I do now about IOMMU groups and PCIe lanes.
It happened, when the 2nd gen TR arrived. It used the same mainboards, so all the manufacturers issued BIOS updates.
Unfortunately, these updates claimed to support SEV (Secure Encrypted Virtualization). Linux of course tried to initialize it at boot/module load time and the entire thing went hanging, because TR CPUs do not support SEV, only EPYCs do.
So there were the following fixes:
1) downgrade BIOS back to pre-TR2 version,
2) blacklist the ccp module; which would make kvm_amd non-functional,
3) wait for a fix in Linux kernel, which initializes SEV with a timeout.
So it wasn't that tragic issue, if you had first gen TR.
Also, all that needs to be set up. If you need to change some little thing, you're much faster doing it locally, rather than trying to wrap your head around the build server configuration and figure out how to just run this one test different but only for this branch and not for the normal builds ...
When I bought it I was doing some embedded device work involving a Windows VM, as well as heavy web dev on a frontend JS app and a backend app with tons of Chrome tabs open. All these things crave memory, and my 16GB MacBook Pro was swapping itself to death. This was pre-32GB MacBook Pros, so I bit the bullet and couldn’t be happier with the setup. It’s dead silent basically no matter what I do and doesn’t get thermally throttled during heavy workloads. Having the extra RAM also makes a huge difference.
Now that I’m doing more regular web dev on an Elixir & React app, I benefit from the 16x parallel compilation & test suite, as well as the ability to keep basically anything open without resource issues.
Not silent, exactly though, hehe.
I’m enjoying the combo of a powerful workstation where I work most of the time, and then a thin & light portable device for when I need portability. For me that combo works well and hits the right trade offs, especially the silence I get to enjoy.
I’m also remembering that Apple ships the same SSD setup in the newer MacBook Pro machines, which weren’t yet out when I bought this iMac Pro. Definitely nothing unique or unusual about that speed anymore!
The weight isn't too bad, I have it in my backpack commuting by bike in hilly Norway. But maybe too heavy for a shoulder bag. The battery time is useless, yes, so that's the big tradeoff. But since I bike instead of commuting by train or so, I never used my previous laptop not plugged in anyway.
Even those crippled by being connected to two lanes can achieve this speed.
I have around 5-6 windows with 10-15 tabs each within them as well some ssh tunnels and some other applications open (I do heavy front/backend with docker builds through ssh as well as ML work through ssh)
Not sure what's going on, but my lowest-end Mac is running everything I need like butter.
That said, if you are just running simple Go or Rust compilations, or small single-package C++ compilations, caching and a decent processor should be good enough, and you probably won’t benefit much from a lot of threads. (You may want it for your Webpack builds still ;)
One tip: scale up your RAM, pay attention to clocks and latency relative to your processor (especially with AMD where it really matters.) 16 GB is easy to kill when you are running 24 instances of GCC and a VM or two.
I would think the extra cpu would be more of an impact with Rust than even C++... I wouldn't know, running a 3600 as a place holder until the 3950X comes out. I couldn't handle the 4790K anymore, going from 32gb to 64gb and the couple extra cores made a huge difference for my docker/vm workflows. Can't wait for the 3950x. I'm sure the TR 3rd gen will be similarly impressive with the changes to IO.
I’m rocking a Samsung 970 Pro 512 GB on my desktop. I never thought I’d need more space than that, since I can always use my NAS or the spare spinning disk I have installed. But, the more CPU power you have, the more you can feed it... I find myself building entire fragments of Nixpkgs now and it takes substantial disk space to do it.
The contribution experience was a nightmare because a full build of Firefox took 3 hrs and running the entire testing framework took 4 hrs, though it turned out that I needed to run only a part of the testing framework. Changing a single line and building it again still took more than 30 minutes.
That was the first moment that I wanted a HEDT in my life. It feels like devs who work with big C++ projects would want a bigger workstation because of the significant build time.
Hm, I guess I don't live anywhere near a data center. 1M+ North American city, but lowest ping to any AWS/GCE region is ~130ms.
Edit: Now resolved, pings (barely) over 50ms.
Level 1 contributors (contributors who are acknowledged by one of Mozilla dev) grant access to TryServer.
I've recently built php + most of the bundled extensions, in a VM (on a 2018 Mac mini) and it's only a couple of minutes at most to build.
Seriously. Chrome and Firefox are both guilty of this.
Even if not for that, I tend to cross compile a lot of software since all the engineers at my company use macs for software development but we deploy to linux servers, so often I end up building rust binaries for linux and it's fairly computationally intense.
For an anecdote, on my work laptop (i9/32Gb/512SSD 2018 15" MBP) I can compile the dev environment from scratch in 40 minutes whereas it takes 4 hours on the company standard dual core/8gb/256gb 2015 13" macbook
I’m a robotics controls engineer. The code I write is pretty short compared to most of you, and it doesn’t take long to compile. But to test it I have to run very complicated dynamic simulations. These never run in realtime. It’s not uncommon for a thirty-second simulation to take five, ten, fifteen minutes to run; sometimes I have to run many iterations of the sam sim to collect valid statistics. So both CPU speed and number of cores translates directly to time spent waiting for the sim run to finish.
I have a 2013 trashcan Mac Pro with 12 cores. It’s still a good machine.
Possibly the only laptops that could compare to desktops are gaming laptops, and I know developers who buy things like the Razer gaming laptop to try and get desktop-like performance.
I migrated from a MBP to a 2018 Mac mini with 64GB, and the ability to run say 10 VMs at once, without having to limit them to half a GB RAM each is amazing.
I'm not in the market when this thing (Mac Pro) is actually released but in a year or to, I may well be migrating to the latest of the Pro line - I don't care about GPU (much - it just needs to drive some displays) but I do care about CPU speed + core count, Memory and fast storage.
Actually my main rig is the last mac pro, the 2013 one - I just don't use apple's OS. I really like the rig and I expect to use it until at least 2023 (10 years of use).
The latest MacBook pros (8 core, 16 threads, 32gb ram, 2tb flash disk) are finally fast enough with enough ram to both run CLion with clangd indexing and do C++ compilation/testing. Full builds are still not advisable (not that a full build is particularly useful since our prod is only Linux and we have CI/desktops to avoid cross-compilation).
I use a 3 year-old laptop with 32GB of RAM, an SSD, and a dual-core i7 (U-series) processor. It's reasonably efficient. I think the amount of RAM and the IO speed of my SSD remove most of the hardware bottlenecks I face.
However, I would like compile times to be faster, I do sometimes notice applications hanging, and IntelliJ (we use Java at work) seems limited on how many projects I can run efficiently in a single workspace. I'm just wondering whether a workstation-grade laptop (Dell Precision or Thinkpad P-series) would be a sufficient upgrade, or investing in a desktop would be worthwhile at some point.
Yes, either 17" machine offers an 8-core CPU and plenty of thermal capacity (i.e. larger chassis than their 15" equivalents), along with more than enough memory (128GB), and in Dell's case, a boatload of HD slots (4, run in whatever RAID config you want). These are desktop replacements, heavy (as in 6.5+ lbs), with 240W power bricks , so you'll probably want them to stay on the desk for most of the time.
I'm personally looking to replace my old Dell Precision with a 15" 5540, maxed out. For Scala work the extra cores help reduce build times, probably the same for Java.
In native app development, Android Studio and Xcode are severely bottlenecked by 2 cores. The difference between my laptop and my Mac Mini (6 cores) is astounding.
The difference between a build taking 6x minutes and 1x minutes is more than just 1/6 because it goes from "Well, guess I'll check email/messenger/HN real quick." to taking a sip of coffee.
It also gets real bad when your IDE is forced to fight with your browser, email client, etc. Then you're forced to do nothing, lest your casual actions further slow down your local build.
Usually the "breaking point" is when builds take more than 5 minutes, but especially when they take more 30+ mins.
My build times aren't as long, because I'm working with Java-based microservices, so each service takes a minute or so to build (with tests) but even that delay can break concentration. Turning off tests helps, but then you don't always have the immediate feedback of the test results (and don't worry, I always run the tests before committing).
Android is probably the only platform that in almost every conference has at least one talk related to how to improve build speed, thanks Gradle + Android Studio.
But now that I am working across projects that run 2-3 repositories at a time with Jetbrains IDE, the computer almost barely keep up. I get times where typing will actually lag.
I am contemplating asking them for a Mac Mini instead since I rarely ever venture out from my desk.
Cumulative wasted minutes from compilation over the course of a year can add up to a lot.
It's absolutely faster than any business laptop for doing builds of medium sized C and C++ projects.
(But I think a non-HEDT desktop would also outperform a typical laptop in this use case -- thermal throttling is a real problem for laptops.)
Last year I bought a T470s with 20GB DDR4 and an i7 (U series) as I was mostly working away from home. It's good enough for most of the work I do, but it can be a bit slow at times. The processor just isn't as fast and the integrated graphics struggle with a 4K desktop (I think that's mainly Linux/GNOME being unoptimised though). I haven't noticed it throttling, but my workload usually isn't that CPU intensive.
If you mainly work from home I'd definately suggest building a desktop machine for your needs.
Of course, it's far bigger and heavier than the Mac, but also of course (for I am Old Skool) I'm using it with a decent keyboard, a decent-sized monitor, a decent mouse, and a USB-C charger. It does mean I can't go to meetings, but that's ok with me...
Mind you, my workflow could probably do with adjusting as well, I tended to work like I do with webapps and just continually rebuild/restart and review my changes on the device itself (or an emulator).
Part of me also wishes we had a big setup with multiple docker images running in parallel but ATM we have the luxury of working on 'just' a website (react, some lambdas, back-end are all third party services, we connect to a staging environment during development) so it's not too bad.
But I'd still like a permanent machine, there's something about (and this is me idealizing) having a fixed workspace you don't have to pack up every day. I mean sure disconnecting a laptop and yeeting it into a backpack isn't that much effort but it's the little things.
It's way better at running Docker instances, a bunch of electron apps, and tons of Chrome tabs simultaneously without a hitch.
Having a real keyboard, mouse, and four 27" monitors is something I will never leave behind at this point. All that screen real estate to spread out over helps enormously. I can have a browser with our application pulled up, Visual Studio, another browser with doc, Webstorm with the front-end code, SSMS connected to the database, an email client, Notepad++ with logfiles, all the different chat clients I have to use, and more if I really need to, all on screen and available at the same time. I don't have to alt-tab around, I just look and it's there.
If I had a similar performing laptop that could replace my desktop in terms of GPU performance and compatibility with the devices I use, my HEDT would start collecting dust.
I still have an old laptop that I use to ssh into my workstation occasionally.
Web Dev. Going from a 2015 MBP to the new touchbar model, my cold build times were cut in half. Other than, saving 15 seconds once per day, I noticed nothing.