3 ms·
Optimization: Prototype before polishing. Get it working before you optimize it. - Eric S. Raymond, The Art of Unix Programming (2003) The First Rule of Progra
by contingencies 6y ago
Optimization: Prototype before polishing. Get it working before you optimize it. - Eric S. Raymond, The Art of Unix Programming (2003)
The First Rule of Program Optimization: Don't do it. - Michael Jackson
The Second Rule of Program Optimization (for experts only): Don't do it yet. - Michael Jackson
Spell create with an 'e'. - Ken Thompson (referring to design regrets on the UNIX creat(2) system call and the fallacy of premature optimization)
The No Free Lunch theorem: Any two optimization algorithms are equivalent when their performance is averaged across all possible problems (if an algorithm performs well on a certain class of problems then it necessarily pays for that with degraded performance on the set of all remaining problems).
... quotes via https://github.com/globalcitizen/taoup https://github.com/globalcitizen/taoup
FWIW at my company we do embedded robotics, use ridiculously underpowered processors with very limited capabilities, and still prefer use HTTP as it is well understood, has good tooling and is easy for everyone to deal with, which reduces real world business costs vs. custom wire-level formats. I'd gently suggest that unless you have a really particular use case (real time stock market feeds where latency is paramount, very expensive or constrained link layer) it makes little sense to worry about this sort of optimization.
- MauranKilom 6y agoWhat do optimization algorithms have to do with performance optimization? I mean, sure, you can use either to improve the other, but NFL has nothing to do with performance optimization.
- contingencies 6y agoFair point - I just grepped for optimization. However, it's a bit like a single iteration of any such algorithm, if applied to the domain. Distilled, it means "no single approach works for all environments" which is essentially the feedback people writing this sort of article need to hear (because apparently they missed it). There could be great reasons to use protobuf for telemetry: like, it's good enough for your application, the team is familiar with it and the code is already written, tested and documented.