空格,换行符,制表符;是否影响服务器性能?
我正在学习PHP的道路上,在我继续我目前的编码风格之前,我想确保:换行和空格会影响服务器的性能吗?通常,我总是为了可读性而添加它们。例如在下面的代码中:
import('something') ;
$var = 'A' ;
$varb = 'B' ;
switch($var) {
case 'A' :
doSomething() ;
doAnotherThing() ;
break ;
}
if ($var == $varb) { header('Location: somewhere.php') ; }
摘要,
- 分号前加空格
- 我在变量值赋值和比较的前后加了空格
- 我在)和{ 之间添加了空格
- 如果后面的代码包含多个语句,我通常在{之后添加一个换行符。
- 在花括号内,我总是在第一个语句前以空格开始,并在最后一个语句的分号 后以另一个空格结束。
- 我总是给每个子元素一个2-space-width的标签
- 我总是在header函数的'Location:'后面添加空格。
- 我总是在分号前加空格
这种风格对我来说很酷,我喜欢它,它很整洁,它让我更容易调试,我想知道的是,这种编码风格会伤害/负担系统吗?重新格式化我的代码会使服务器变慢吗?到目前为止,我没有遇到格式化错误。
感谢您的回答
No。额外的格式化不会影响性能*.
选择你喜欢的编码风格——这对于团队/项目/现有的代码也是可以接受的——最重要的是,要保持一致。(使用具有自定义语法格式的编辑器是有帮助的。)
幸福的编码。
虽然可以认为可能会出现不显著的增量IO,并且词法分析器必须读取不显著的更多的符号,但最终结果是:不会出现性能下降。
不是,也不是(但大多无关紧要)。考虑这个问题的方式与@pst的答案略有不同(甚至没有考虑磁盘io),但最终结果相同。
在后台简化php - php在运行时被编译成字节码。在编译过程中,所有的空格和注释都会被过滤掉。
与所有其他操作相比,从更少的空格中过滤出更多的空白几乎是微不足道的。
实际运行的是编译后的字节码。
但是假设你正在运行一个大型网站,有1000个web服务器,每个php文件每天被调用数百万次。所有这些之前微不足道的时间都累积起来了。但是编译器所做的其他事情也是如此。当这些都成为您的问题时,是时候开始研究PHP缓存/加速器了。(或者更有可能在此之前)
基本上,这些缓存器/加速器在文件被修改后第一次产生编译的字节码时缓存它们。对同一文件的后续调用跳过编译阶段,直接进入缓存的编译字节码。在这个阶段,所有的空格不再存在。因此,这就变成了一个没有意义的问题,因为它们只编译一次。