通常,开发人员会面临两种可能的解决方法的选择,一种是惯用且可读的,而另一种则不太直观,但性能可能更好。例如,在基于C的语言中,有两种方法将数字乘以2:
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
和
int FastMultiplyBy2(int x)
{
return x << 1;
}
对于技术和非技术读者来说,第一个版本都比较容易上手,但是第二个版本的性能可能更好,因为移位比乘法更简单。(目前,尽管这也是一个考虑因素,但假设编译器的优化器不会检测到该问题并对其进行优化)。
作为开发人员,最初尝试会更好吗?