空格、换行、制表符;它们会影响服务器性能吗?


Spaces, line breaks, tabs ; are they affect server performance?

空格,换行符,制表符;是否影响服务器性能?

我正在学习PHP的道路上,在我继续我目前的编码风格之前,我想确保:换行和空格会影响服务器的性能吗?通常,我总是为了可读性而添加它们。例如在下面的代码中:

import('something') ;
$var = 'A' ;
$varb = 'B' ;
switch($var) {
  case 'A' :
    doSomething() ;
    doAnotherThing() ;
    break ;
}
if ($var == $varb) { header('Location: somewhere.php') ; }

摘要,

  1. 分号前加空格
  2. 我在变量值赋值和比较的前后加了空格
  3. 我在)和{
  4. 之间添加了空格
  5. 如果后面的代码包含多个语句,我通常在{之后添加一个换行符。
  6. 在花括号内,我总是在第一个语句前以空格开始,并在最后一个语句的分号
  7. 后以另一个空格结束。
  8. 我总是给每个子元素一个2-space-width的标签
  9. 我总是在header函数的'Location:'后面添加空格。
  10. 我总是在分号前加空格

这种风格对我来说很酷,我喜欢它,它很整洁,它让我更容易调试,我想知道的是,这种编码风格会伤害/负担系统吗?重新格式化我的代码会使服务器变慢吗?到目前为止,我没有遇到格式化错误。

感谢您的回答

No。额外的格式化不会影响性能*.

选择你喜欢的编码风格——这对于团队/项目/现有的代码也是可以接受的——最重要的是,要保持一致。(使用具有自定义语法格式的编辑器是有帮助的。)

幸福的编码。


虽然可以认为可能会出现不显著的增量IO,并且词法分析器必须读取不显著的更多的符号,但最终结果是:不会出现性能下降。

不是,也不是(但大多无关紧要)。考虑这个问题的方式与@pst的答案略有不同(甚至没有考虑磁盘io),但最终结果相同。

在后台简化php - php在运行时被编译成字节码。在编译过程中,所有的空格和注释都会被过滤掉。

与所有其他操作相比,从更少的空格中过滤出更多的空白几乎是微不足道的。

实际运行的是编译后的字节码。

但是假设你正在运行一个大型网站,有1000个web服务器,每个php文件每天被调用数百万次。所有这些之前微不足道的时间都累积起来了。但是编译器所做的其他事情也是如此。当这些都成为您的问题时,是时候开始研究PHP缓存/加速器了。(或者更有可能在此之前)

基本上,这些缓存器/加速器在文件被修改后第一次产生编译的字节码时缓存它们。对同一文件的后续调用跳过编译阶段,直接进入缓存的编译字节码。在这个阶段,所有的空格不再存在。因此,这就变成了一个没有意义的问题,因为它们只编译一次。