Live data from Hacker News

Tracking developer build times to decide if the M3 MacBook is worth upgrading

incident.io

411–420 of 432 posts

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#411
post #375

Earlier quoted context omitted.

You are not going to saturate a 150GB/s memory interface building some code on a six-core CPU... these CPUs are fast, but not that fast.

Oh, yes, you are. The optimising steps, linking and the link-time optimisation (LTO) are very heavily memory bound, especially on large codebases. The Rust compiler routinely hits the 45-50Gb/sec ballpark of the intra-memory transfer speed on compiling a medium sized project, more if the code base large. Haskell (granted, a fringe yet revealing case) case just as routinely hits the 60-70 Gb/sec memory transfer speed…

Which hardware were these results obtained on? Are you talking about laptops or large multi-core workstations? I am not at all surprised that linking needs a lot of memory bandwidth (after all, it’s mostly copying), but we are talking about fairly small CPUs (6-8 cores) by modern standards. To fully saturate M3 Pro’s 150GB/s on a multicore workload you’d need to transfer ~8 bytes per cycle/core between L2 and the RAM on average, which is a lot for a compile workload. Maybe you can hit it during data transfer spikes but frankly, I’d be shocked if it turned out that 150GB/s is the compilation bottleneck.

Regarding mold… maybe it can indeed saturate 150GB/s on a 6-core laptop. But they were not using mold. Also, the timing differences we observe here are larger than what would be expected with a linker like mold with a 25% reduction in bandwidth. I mean mold can link clang in under 3 seconds. Reducing bandwidth would increase this by a second at most. We see much larger variation in M2 vs. M3 results here.

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#412
post #144

> All developers work with a fully fledged incident.io environment locally on their laptops: it allows for a This to me is the biggest accomplishment. I've never worked at a company (besides brief time helping out with some startups) where I have been able to run a dev/local instance of the whole company on a single machine. There's always this thing, or that, or the other that is not accessible. There's always a got…

We used to have that, but it's hard to support as you scale. The level of effort is somewhat quadratic to company size: linear in the number of services you support and in the number of engineers you have to support. Also divergent use cases come up that don't quite fit, and suddenly the infra team is the bottleneck to feature delivery, and people just start doing their own thing. Once that Pandora's Box is opened, i…

I was thinking of this as I was reading the comments on another thread here

https://news.ycombinator.com/item?id=38816135

Like if you have logic apps and azure Data pipelines, how do you create and more importantly keep current the local development equivalents for those?

I'm not saying if you are YouTube that all the videos on YouTube must fit on a developer's local machine but would be nice if you could run the whole instance locally or if not, at least be able to reproduce the whole set up on a different environment without six months worth of back and forth emails.

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#413
post #398
post #303

Earlier quoted context omitted.

That is a very large company if you have a singular 40 million line codebase, maybe around 1000 engineers or greater? Network builds also takes significant investment in adopting stuff like bazel and a dedicated devex team to pull off most of the time. Setting up build metrics to determine a build decision and the other benefits that come from it is a one month project at most for one engineer. It's like telling an i…

1,000 is a small company.

They said 1000 engineers. Surely a company consists of roles other than software engineers, right?

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#414
post #371

Earlier quoted context omitted.

I use Basel for C++. I would write normal dockerfile if I need it. Bazel docker support is an atrocity. For JS builds I also use regular TSC.

rules_docker is now deprecated but rules_oci[0] is the replacement and so far I find it much nicer [0] - https://github.com/bazel-contrib/rules_oci

You may pry my Dockerfiles from my cold dead fingers :)

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#415
Network full builds might be faster, but would incremental builds be? Would developers still be able to use their favourite IDE and OS? Would developers be able to work without waiting in a queue? Would developers be able to work offline?

If you have a massive, monolithic, single-executable-producing codebase that can't be built on a developer machine, then you need network builds. But if you aren't Google, building on laptops gives developers better experience, even if it's slower.

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#416

Earlier quoted context omitted.

Yes, you can get a lot more hardware for your money than buying the Apple Logo.

Not really in a laptop though—and certainly not with the same efficiency (battery life, fan noise, weight). If you want a laptop, the MacBooks are pretty indisputably king these days. If a desktop is fine then yes you can build some great Windows rigs for much less money.

Actually it seems at this time you're more or less right. In the past there was quite a spread between a beefy thinkpad and a mac. Looks like rightnow you can get comparable thinkpad vs MBP14 (with various specs) within $200 of eachother, which means you're really choosing between nuanced and highly personal preference differences. (such as appearance, OS, keyboard feel etc).

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#417
post #295

This is a great write-up and I love all the different ways they collected and analyzed data. That said, it would have been much easier and more accurate to simply put each laptop side by side and run some timed compilations on the exact same scenarios: A full build, incremental build of a recent change set, incremental build impacting a module that must be rebuilt, and a couple more scenarios. Or write a script that…

I agree, it seems like they were trying to come up with the most expensive way to answer the question possible for some reason. And why was the finding in the end to upgrade M1 users to more expensive M3s when M2s were deemed sufficient?

Are m2s meaningfully cheaper? M1s are still being sold at their launch price

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#418

This is a great write-up and I love all the different ways they collected and analyzed data. That said, it would have been much easier and more accurate to simply put each laptop side by side and run some timed compilations on the exact same scenarios: A full build, incremental build of a recent change set, incremental build impacting a module that must be rebuilt, and a couple more scenarios. Or write a script that…

The dev telemetry sounds well intentioned… but in 5-10 years will some new manager come in and use it as a productivity metric or work habit tracking technique, officially or unofficially?

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#419

Earlier quoted context omitted.

Not really in a laptop though—and certainly not with the same efficiency (battery life, fan noise, weight). If you want a laptop, the MacBooks are pretty indisputably king these days. If a desktop is fine then yes you can build some great Windows rigs for much less money.

Actually it seems at this time you're more or less right. In the past there was quite a spread between a beefy thinkpad and a mac. Looks like rightnow you can get comparable thinkpad vs MBP14 (with various specs) within $200 of eachother, which means you're really choosing between nuanced and highly personal preference differences. (such as appearance, OS, keyboard feel etc).

Beyond those superficial differences you mention though, the MacBook Pro is probably lighter than the beefy ThinkPad you’re imagining. It’s undoubtedly quieter—you’ll rarely hear the MacBook’s fans even under heavy load. The screen of the MacBook is high refresh rate and likely higher quality than the ThinkPad. The MacBook speakers are astoundingly best in class. And the MacBook likely gets better battery life to boot.

And here’s another kicker—all those “comparable” Wintel laptops viciously throttle their performance the second you unplug them from the wall. Not the MacBooks. They keep being just as performant on battery as they do plugged in, while still delivering that excellent battery life. It’s remarkable.

I really can’t in good conscience recommend anything but a MacBook to a prospective laptop buyer right now, unless the user requires specific software that only runs on Windows. Save a couple hundred bucks only to end up with a vastly inferior machine? It just doesn’t make sense.

Re: Tracking developer build times to decide if the M3 MacBook is worth upgrading

#420

Earlier quoted context omitted.

You have to give a hosting company a copy of your passport?!? (And hope they delete it… eventually?)

Only if you triggered some risk checking systems. I didn't need to provide anything when I signed up this year.

Ah, so after you’ve been with them a while and it’s a pain to go elsewhere.
Post reply on HN