一般来说,代码长度是否对程序的速度有影响?我说的是小尺寸的差异,而不是将10,000行与10行比较。
示例#1:
// Ternary Operator
$todo = (empty($_POST['todo'])) ? 'default' : $_POST['todo'];
VS
// The above is identical to this if/else statement
if (empty($_POST['todo'])) {
$action = 'default';
} else {
$action = $_POST['todo'];
}
其他例子,例如不使用常用括号和通用缩进。
示例#2:
if ($gollum === 'halfling') {
$height --;
}
VS
if ($gollum === 'halfling') $height --;
同样使用CamelCase命名约定会降低字符长度,这是否有效?我怀疑这是有效的,但它仍然使用较少的字符。
干杯!
答案 0 :(得分:5)
在您的第一个示例中,您使用了两种不同的结构,即“三元运算符”和#39;和' if / else'言。
因为' if / else'语句更通用(即你可以用它做更多的事情),编译器/解析器将有更多的困难来优化它。所以我会说三元运算符可能更快一点。
在第二个例子中,它只是关于编码风格,两个代码可能会被编译/解析为完全相同的东西,所以这里没有增益。
然而,premature optimization is the root of all evil!即使在整个应用程序中进行这种微小优化的收益也可能是微不足道的,并且大部分时间都会牺牲可读性和可维护性。所以我强烈反对这种事情。
关于字符长度,它根本不重要,编译器/解析器无论如何都会将其转换为计算机可以理解的其他表示形式,所以唯一能做的就是change是源代码在硬盘驱动器上占用的空间。
只需以更容易理解的方式编写代码,让编译器/解析器执行此类操作。优化算法本身比编写算法要好得多。
答案 1 :(得分:1)
我认为你现在更关心编码风格而不是效率。
如果您已有风格指南,请按照它进行操作。如果你不是,你可以find one或创建一个。两个示例中的代码之间没有这种差异。您可以选择任何人来创建自己的风格指南。