通常,开发人员将面临两种解决问题的可能方法之间的选择——一种是惯用的和可读的,另一种是不太直观的,但可能性能更好。例如,在基于 C 的语言中,有两种方法可以将一个数乘以2:
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
还有
int FastMultiplyBy2(int x)
{
return x << 1;
}
对于技术和非技术读者来说,第一个版本更容易识别,但是第二个版本可能性能更好,因为比特移位比乘法操作更简单。(现在,让我们假设编译器的优化器不会检测并优化它,尽管这也是一个考虑因素)。
作为一个开发人员,哪种方法更适合作为初始尝试?