很多人开发php的时候喜欢关掉一部分的错误提示,尤其是Notice级别的提示,这样做可以省去一些严格判断的代码。而平时开发喜欢开着E_ALL级别的我今天在接手同事的项目时,看着满屏幕Notice错误时突然想到了1个问题:
在关掉错误提示时,那么程序代码中大量的notice级别错误是否会造成PHP性能下降,从而使关闭错误输出成为一个掩耳盗铃的做法呢?
下面我来用性能测试来证明这个推论:
测试1:
在关闭错误显示的情况下,测试未初始化变量和已初始化变量在10000000次循环中的性能
变量已初始化的循环代码如下:
变量未初始化的循环代码如下:
测试成绩:
初始化:平均 5.28 秒
未初始化:平均 17.2 秒
性能差距:3.25倍
测试2:
在关闭错误显示的情况下,测试数组索引使用引号和非引号引用在10000000次循环中的性能
数组有引号索引代码如下:
数组无引号索引代码如下:
测试成绩:
有引号:平均 6.37 秒
无引号:平均 25.19秒
性能差距:3.95倍
平均时间表:
结论:
由上面的测试我们可以看到,关闭掉PHP错误输出并不会关闭php内核对错误的处理,代码中如果有大量的Notice级别的错误,还是会降低php程序的性能。所以我们在开发的时候还是要将错误级别开至E_ALL,谨慎的处理掉每处不合理的代码,这样既可以提高了代码的严谨性,也提高了代码的运行性能。
思想之地 原创文章,转载请注明出处!