←back to thread

837 points turrini | 2 comments | | HN request time: 0s | source
Show context
busterarm ◴[] No.43971959[source]
Let's keep the CPU efficiency golf to Zachtronics games, please.

I/O is almost always the main bottleneck. I swear to god 99% of developers out there only know how to measure cpu cycles of their code so that's the only thing they optimize for. Call me after you've seen your jobs on your k8s clusters get slow because all of your jobs are inefficiently using local disk and wasting cycles waiting in queue for reads/writes. Or your DB replication slows down to the point that you have to choose between breaking the mirror and stop making money.

And older hardware consumes more power. That's the main driving factor between server hardware upgrades because you can fit more compute into your datacenter.

I agree with Carmack's assessment here, but most people reading are taking the wrong message away with them.

replies(3): >>43972051 #>>43972077 #>>43972235 #
_aavaa_ ◴[] No.43972077[source]
There's servers and there's all of the rest of consumer hardware.

I need to buy a new phone every few years simply because the manufacturer refuses to update it. Or they add progressively more computationally expensive effects that makes my old hardware crawl. Or the software I use only supports 2 old version of macOS. Or Microsoft decides that your brand new cpu is no good for win 11 because it's lacking a TPM. Or god help you if you try to open our poorly optimized electron app on your 5 year old computer.

replies(1): >>43972156 #
1. busterarm ◴[] No.43972156[source]
But Carmack is clearly talking about servers here. That is my problem -- the main audience is going to read this and think about personal compute.

All those situations you describe are also a choice made so that companies can make sales.

replies(1): >>43972252 #
2. _aavaa_ ◴[] No.43972252[source]
It shows up in different ways, and I agree that some of my examples are planned obsolescence.

I'm not so sure they're that different though. I do think that in the end most boil down to the same problem: no emphasis or care about performance.

Picking a programming paradigm that all but incentivizes N+1 selects is stupid. An N+1 select is not an I/O problem, it's a design problem.