Hacker News new | ask | show | jobs
by thrwawy1234 1281 days ago
Yes and no. As you said, in some areas we have wonderfully efficient codes that can take advantage of hardware for things like codecs. Efficiency through high level languages - that's debatable. Often they trade developer efficiency for efficiency of the computer - layers of abstractions to hide platform details, runtime layers to defer some things to runtime, etc.

I rarely see people using new tools to develop code that itself is more efficient - based on the ever growing resource needs of programs that rarely have corresponding growth in capabilities, I think almost all of the effort from the developer community as been on making developers feel more efficient at the cost of compute resources.

Personally I'd love to see people focus on efficiency even if it takes more time and effort. Unfortunately, the incentive just isn't there - developers focus on what make it possible for them grind out new code faster to the largest audience possible. Hence the layers upon layers of runtimes and abstractions that make that possible. If it means burning CPU and memory, they really don't seem to care. Hence the relentless consumption of more and more resources by software.

I'm jaded : performance analysis was a long term research area for me, so I pay a bit more attention to these kinds of issues than your average JS or Python jockey who thinks the computer is a magical container full of infinite RAM and compute resources that are theirs and theirs alone to consume.

2 comments

I don't really think the performance hit is that bad, except in odd cases like embedding a browser in an Android app that has to be opened when you load it.

It doesn't matter if you have 200 layers of function call on a button click handler, it's going to run in 1ms compared to 200ms to even think about clicking it. Some stuff doesn't matter.

However, the code to render the page full of buttons and scroll it smoothly could be performance critical.

A one size fits all framework can afford to put tons of effort into optimizing the heavy operations.

Handwritten code might not even use GPU acceleration, because there's no reuse and nobody thought it was worth it to spend months on it.

There's bad performance hits coming from somewhere.

Very noticeable if you are like me and run an older smartphone (Galaxy S5, 2014).

There was definitely bad performance hits on older phones after about a year. Not exactly sure what causes that.

Maybe something in the older Androids, maybe performance of the hardware has just increased so much that it finally caught up with software.

Older phones should be fast, just like old video games, but they haven't optimized that much, they just stopped making stuff slower and started mostly incremental gains and stuff that requires new GPUS.

Thanks for the thoughtful response, I wonder if there is any sort of actual research on that topic (like something that looks at the rate/direction/trajectory of performance) - although I understand that's very hard to reliably measure.