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