在csdn上看到一篇关于php性能提升的文章,大家批评很大, 不如一测,看看实际结果如何。因为是针对php不同写法之间的性能测试,所以系统版本,web server都是可以忽略的,只有php的版本可能影响这个测试,所以只贴出了测试的php版本。
php版本:5.3.10
测试工具:ApacheBench(apache自带的压力测试工具)
以下测试都是在虚拟机里进行的,为了保证没有请求失败的情况,我每次测试都是模拟100个客户端请求2000次,每种情况测试10次,然后求平均值。数据单位:reqs/s(每秒请求数)
1、先来看看用单引号和双引号输出字符串测试
a. 单引号测试
我在网上随机找了一个490字节的字符串,先用单引号输出测试。结果:
1267.43
1204.79
1158.59
1215.24
1232.76
1247.54
1211.27
1186.28
1231.82
1303.20
取平均值为:1225.90
b. 双引号测试
运行10次,结果:
1150.35
1201.95
1147.59
1175.00
1204.50
1256.73
1183.70
1245.76
1209.22
1219.83
取平均值为:1199.46
可以看出两个测试结果非常接近,但是用单引号能快一些。
2、接下来再看下用点符号连接变量和在双引号里直接写入变量的测试
被测试的程序基本和上面一样,只是我将其中一部分字符串提取出来,用变量代替。
a. 点符号连接变量测试结果:
1232.11
1152.99
1218.14
1227.83
1178.44
1163.25
1214.01
1201.75
1185.30
1155.54
取平均值为:1192.94
b. 双引号里直接写入变量测试结果:
1262.66
1145.22
1136.64
1214.09
1137.91
1178.40
1194.15
1164.17
1236.68
1164.75
取平均值为:1183.47
两个测试结果还是非常接近。
总结:从上面测试结果来看,双引号和单引号不是那么重要了。至于用点连接符来连接变量,还是直接在双引号里直接写变量,关系也不大了。