shtml比起html最大的好处就是可以使用包含指令,不仅节省不少磁盘空间,更新内容时也非常方便。功能更强了,自然性能也会降低,那么究竟降低多少呢?下面就来测试一下。
测试环境:
系统:ubuntu 12.04(虚拟机)
web服务器:apache 2.2.22
测试软件:ApacheBench(apache自带的压力测试工具)
测试思路:
- 测试html的性能。
- 测试没有任何指令的shtml的性能。
- 测试只有一个包含指令的shtml的性能。
- 测试多个包含指令的shtml的性能。
数据单位均为:reqs/s(每秒请求数)
1、测试html的性能
页面内容很简单,就是“hello world!”。
$ ab -c 100 -n 10000 http://192.168.2.131/test.html
192.168.2.131是服务器的地址。执行10次,结果如下:
4744.53 5059.37 4758.56 5433.15 5278.94 5325.25 5188.99 5379.88 4993.56 5291.38 平均:5145.36
2、测试没有任何指令的shtml的性能
$ ab -c 100 -n 10000 http://192.168.2.131/test.shtml
结果如下:
5096.60 4768.16 5011.30 4917.66 4917.65 5280.39 5137.06 5060.40 4994.30 5188.98 平均:5037.25
3、测试只有一个包含指令的shtml的性能
页面输出内容和上面的一致,不同的是内容是放在文件tmp.shtml里,test.shtml包含了tmp.shtml文件。
$ ab -c 100 -n 10000 http://192.168.2.131/test.shtml 4393.79 4442.38 4385.59 4412.89 4789.85 4462.07 4403.87 4368.00 4545.41 4253.96 平均:4445.78
4、测试多个包含指令的shtml的性能
将页面内容分散到tmp1.shtml、tmp2.shtml、tmp3.shtml文件,test.shtml包含这个三个文件。
$ ab -c 100 -n 10000 http://192.168.2.131/test.shtml 3887.27 3752.72 3800.96 3831.63 3633.61 3658.53 3720.77 3635.75 3643.07 3637.80 平均:3720.21
小结
从上面的数据可以看出:
- 如果只是单纯的shtml,性能下降并不严重,性能下载百分比约为(5145.36-5037.25)/5145.36=2.1%。
- 和不包含指令的shtml的相比,包含一个文件后,性能下降就比较多,下降百分比:(5037.25-4445.78)/5037.25=11.7%。
- 从第4个测试可以看出,包含指令越多,性能下降越严重。
另外还有一点需要注意下:如果是html,同一个客户端第一次访问是200状态,第二次访问就是304 Not Modified状态。而shtml始终是200状态。也就意味着使用shtml,每次访问都会传输页面内容数据,对带宽来讲也会造成额外的压力。所以在决定是否使用shtml时,这个因素也应当列入考虑的范围。
nginx在静态页面方面的吞吐量比apache优秀很多,不晓得在shtml方面处理效率如何,抽空再测试下吧。
转载请注明:快乐编程 » shtml的性能测试分析