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