Is micro-optimisation important when coding?
Posted
by
BozKay
on Programmers
See other posts from Programmers
or by BozKay
Published on 2011-08-08T16:33:43Z
Indexed on
2012/04/05
11:41 UTC
Read the original article
Hit count: 320
code-quality
|optimization
I recently asked a question on stackoverflow.com to find out why isset() was faster than strlen() in php. This raised questions around the importance of readable code and whether performance improvements of micro-seconds in code were worth even considering.
My father is a retired programmer, I showed him the responses and he was absolutely certain that if a coder does not consider performance in their code even at the micro level, they are not good programmers.
I'm not so sure - perhaps the increase in computing power means we no longer have to consider these kind of micro-performance improvements? Perhaps this kind of considering is up to the people who write the actual language code? (of php in the above case).
The environmental factors could be important - the internet consumes 10% of the worlds energy, I wonder how wasteful a few micro-seconds of code is when replicated trillions of times on millions of websites?
I'd like to know answers preferably based on facts about programming.
Is micro-optimisation important when coding?
EDIT : My personal summary of 25 answers, thanks to all.
Sometimes we need to really worry about micro-optimisations, but only in very rare circumstances. Reliability and readability are far more important in the majority of cases. However, considering micro-optimisation from time to time doesn't hurt. A basic understanding can help us not to make obvious bad choices when coding such as
if (expensiveFunction() && counter < X)
Should be
if (counter < X && expensiveFunction())
(example from @zidarsk8) This could be an inexpensive function and therefore changing the code would be micro-optimisation. But, with a basic understanding, you would not have to because you would write it correctly in the first place.
© Programmers or respective owner