PHP是速度很快的脚本语言,但是用了框架以后好像感觉挺慢的。于是猜测会不会PHP本身也不是很快。如果不是很快,能否采用PHP调用本地动态链接库的形式来提升速度。 于是有了下面的对比实验。
测试环境
1. 硬件环境如下图所示。
2. 软件环境
系统: Ubuntu 12.10
gcc版本:
Thread model: posix
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
php版本:
PHP 5.3.22 (cli) (built: Mar 14 2013 20:37:16)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
php开发环境: LAMP,所有安装包均是通过源码编译安装而成,编译过程中会自动根据本机各项参数进行最优配置。性能比apt-get install命令直接安装好。 关于以源码包方式搭建LAMP请参考文章:http://keping.me/linux-php-dev-by-source-style/
测试方法
由于冒泡排序在时间复杂度上相当稳定——O(n2),在最大程度上减少了数据可能带来的影响,故采取计算冒泡排序的运行时间的方法来进行此次实验。
对比测试分组
分组1: C++直接调用程序内的函数
分组2: C++调用打包好的动态链接库文件(.so文件,该文件也是自己写好并打包)
分组3: PHP直接调用程序内的函数
分组4: PHP调用打包好的动态链接库文件(.so文件,该文件也是自己写好并打包)
测试数据
数据总体规模为5,500,000个0~999的整数。
每一实验组,循环执行次数为30250,000,000,000次。
测试所用数据可以从以下地址下载:
http://keping.me/david-uploads/data/data_cpp.tar.gz
测试数据生成代码如下
[cpp]
#include
#include
#include
using std::cout;
using std::endl;