3 ms·
I work on systems where speed is a requirement, and this think-about-speed-from-the-beginning is the way to proper way to do this. I've also been parachuted in
by willvarfar 7y ago
I work on systems where speed is a requirement, and this think-about-speed-from-the-beginning is the way to proper way to do this.
I've also been parachuted into projects that are having performance problems, and usually you can find some nice low hanging fruit. But there's usually some crucial poor-performing part that can't be made faster without a complete rewrite that uses a entirely different algorithm and data-structure. And then it becomes clear that doing so would impact all the other code; basically, its unfixable because of early design choices.
Most of the slowest programs I've had to crawl into have been 'designed for web scale' nonsense from the beginning, and die a horrid performance death through premature distribution and the use of 'scalable' nosql technologies that were much talked about when the project adopted them but now are rather out of fashion, thankfully. My experience is that ipc is bad for performance and having a system on as few boxes as possible is good for performance, which seems to be quite the opposite to the system architectures that were all the 'web scale' rage this past decade.
- hashkb 7y agoAnd speed is always a requirement. There are tons of studies you can look up about the impact of page load time on e-commerce revenue.
- willvarfar 7y agoTBH the specific examples I had in mind when I was writing my post were mostly backend systems, including batch ones. A lot of the performance improvements I extract from software is by dividing up what needs to be fast and what can be slow, and slowing down the slow stuff to free up resources for the fast stuff etc. I just chuck this in because I think its interesting how many perspectives and directions people on HN have.
- SahAssar 7y agoNot everything is Customer facing, interactive systems though.