More troublingly, performance has not improved in CI at the same pace as on developer machines—it’s usually a lot slower to build our app in CI than it is to do it locally on my M1 laptop.
While some of the other comments around optimizing CI pipelines are solid, this whole thing seems to be due to having CI running on servers that are -worse- than a laptop. Isn't that wild? Servers weaker than laptops. Not even desktops or workstations. LAPTOPS.
And they are, because they're just cloud instances. And most cloud instances... are not fast.
Consider the idea that you could run your CI runner on an M1 laptop if you so choose to. Setting up a self-hosted GH Actions runner (for example) is quite straightforward. Doesn't even need to be an internet-facing machine, it can be a spare machine sitting at home/office. $600 will get you a Mac mini with an M2 CPU and super-fast SSD; everything will build faster than it ever could on any generic CI build server.
My educated speculation is that builds are particularly sensitive to I/O latency (read this file, and based on its contents, read this other file). For that kind of workload, the directly attached NVME that you get in a laptop will beat the pants off the network attached disk that you get in a budget friendly cloud instance.
This is absolutely true.
We run fairly heavy duty CI infra and I can say with confidence that this is one of the biggest factors impacting CI runner performance, almost equal in weight to raw CPU perf.
I think it's also fair to rope in how fucking bloated so much software is now. The size of many applications that do garden variety work like real time chat is fucking ridiculous. Slack at my last time I looked was just under 200 MB. TWO. HUNDRED. MEGS. To send and receive fucking instant messages and do voice/video calling.
Apple Silicon truly changed the game. Like I still have a PC for many applications that a Mac just isn't suited for, but it still floors me how my little Macbook Air will utterly lap coworker's Lenovo's with i9's and double the RAM, while running without any active cooling no less and theirs are practically hovering from fans.
The M processors truly left PC's in the fucking dust.
Comments
While some of the other comments around optimizing CI pipelines are solid, this whole thing seems to be due to having CI running on servers that are -worse- than a laptop. Isn't that wild? Servers weaker than laptops. Not even desktops or workstations. LAPTOPS.
And they are, because they're just cloud instances. And most cloud instances... are not fast.
Consider the idea that you could run your CI runner on an M1 laptop if you so choose to. Setting up a self-hosted GH Actions runner (for example) is quite straightforward. Doesn't even need to be an internet-facing machine, it can be a spare machine sitting at home/office. $600 will get you a Mac mini with an M2 CPU and super-fast SSD; everything will build faster than it ever could on any generic CI build server.
My educated speculation is that builds are particularly sensitive to I/O latency (read this file, and based on its contents, read this other file). For that kind of workload, the directly attached NVME that you get in a laptop will beat the pants off the network attached disk that you get in a budget friendly cloud instance.
This is absolutely true. We run fairly heavy duty CI infra and I can say with confidence that this is one of the biggest factors impacting CI runner performance, almost equal in weight to raw CPU perf.
I think it's also fair to rope in how fucking bloated so much software is now. The size of many applications that do garden variety work like real time chat is fucking ridiculous. Slack at my last time I looked was just under 200 MB. TWO. HUNDRED. MEGS. To send and receive fucking instant messages and do voice/video calling.
Apple Silicon truly changed the game. Like I still have a PC for many applications that a Mac just isn't suited for, but it still floors me how my little Macbook Air will utterly lap coworker's Lenovo's with i9's and double the RAM, while running without any active cooling no less and theirs are practically hovering from fans.
The M processors truly left PC's in the fucking dust.
Lunar Lake closed the gap with M*
Most cloud instances that people actually use on a day-to-day basis underperform their laptops by a lot!