18
6

当jsp遇到hiphop-php…

Author Jessica     Category PHP, 本站原创     Tags , ,

看到了hiphop-php的源码已经发布到了github上..赶紧下下来到ubuntu中去编译..

比较麻烦的是hiphop-php需要N多包 还好我用的是Ubuntu 一个apt-get install可以搞定大部分包

安装过程我就不说了 官方的wiki 说的很清楚了.

唯一要注意的一点 也是我走了弯路的地方就是 现在的hiphop-php只能再64位系统下运行..

我开始在wiki上没看到这一行.. 包都安好了 一切就绪了 到hiphop-php cmake的时候提示我只能运行在64位系统下.我差点崩溃..

所以我费了一天时间来安装64位的Ubuntu与各种包. 功夫不负有心人终于被我搞定..

到底hiphop-php性能怎么样呢?我想着都是大家最关心的话题..我为了做个比较..还特地安装了一个tomcat跟jsp比较下性能..

严重声明.本次比较不带有专业性和普遍性.

顺便一提.hiphop-php编译PHP的速度真慢啊 大家可以看我编译了一行echo ‘aaa’;所用的时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
jessica@ubuntu:~/Desktop/hiphop-php/src$ hphp/hphp test.php --keep-tempdir=1 --log=3
running hphp...
creating temporary directory /tmp/hphp_dUhsGK ...
parsing inputs...
parsing ./test.php...
parsing inputs took 0'00" (1 ms) wall time
pre-optimizing...
pre-optimizing took 0'00" (0 ms) wall time
inferring types...
inferring types took 0'00" (0 ms) wall time
post-optimizing...
post-optimizing took 0'00" (0 ms) wall time
creating CPP files...
creating CPP files took 0'00" (41 ms) wall time
compiling and linking CPP files...
 
compiling and linking CPP files took 0'52" (52075 ms) wall time
running executable /tmp/hphp_dUhsGK/program --file test.php...
aaaall files saved in /tmp/hphp_dUhsGK ...
running hphp took 0'52" (52367 ms) wall time

因为hiphop要构建一个类似zend的引擎.并编译.所以挺费时间..不过代码量大点的话时间差别也不会太大..

言归正传..下面是在我机器上运行的结果..仅供参考..

1
2
3
4
5
$time = microtime(true);
for($i=0;$i<=100000;$i++) {
	//测试空循环
}
echo microtime(true) - $time;

以上是PHP的代码.我在apache上直接运行的结果是:

0.0970780849457

用hiphop-php编译后运行的结果是:

0.05024790763855

而下面的JSP代码

1
2
3
4
5
long time = new Date().getTime();
for(int i=0;i<=100000;i++) {
 	//测试空循环
}
out.println(new Date().getTime() - time);

运行的结果大约是30 (注意PHP跟Java的单位不一样)

但是JSP运行的很奇怪 有一半是20左右 但是也有50 60的 十分不稳定.

但是hiphop-php与PHP都比较稳定.

我又测试了下面的代码

1
2
3
4
5
6
$time = microtime(true);
$array = array();
for($i=0;$i<=100000;$i++) {
 	$array[] = $i; //测试大数据量速度
}
echo microtime(true) - $time;

在PHP中运行直接出错:

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 71 bytes) in /var/www/index.php on line 5

当使用hiphop-php编译后:

0.025422811508179

而下面的JSP代码

1
2
3
4
5
6
7
8
9
10
long time = new Date().getTime();
try{
	ArrayList arr = new ArrayList();
	for(int i=0;i<=100000;i++) {
 		arr.add(i); //测试大数据量速度
	}
}catch(Exception e){
	e.printStackTrace();
}
out.println(new Date().getTime() - time);

运行的结果大概是6左右..

经过上面的比较.我也不想过多评价.总之hiphop-php暂时还是一个预览的版本.毕竟连个32bits的版本都没有.

现在还不建议用到生产环境中..相信他会越来越完善的:)

关于哥学社:
哥学社是一个自由博客组织,以提高原创技术博客质量,为成员博客增加更有效评论,由来自腾讯、百度、盛大、人人网、新浪、奇虎、TOM等各大企业的哥们共同起草发起。

关于董立强:
忠实的PHP粉丝,前端业余爱好者,恨油菜花,有远大的理想与报复!
个人技术站点: http://www.skiyo.cn/ 。可以通过电子邮件 jessica.dlq@gmail.com 联系到他。

6 Comments to “ 当jsp遇到hiphop-php… ”

  • kakashilw 2010年03月22日 于 12:26

    tank兄真是有钻研精神哦~~~

    • Jessica 2010年03月22日 于 12:40

      其实就是没事撑的..

  • 李博 2010年04月13日 于 16:13

    我认为,应该用time命令去看程序运行的时间……

    • Jessica 2010年04月14日 于 10:33

      因为最终还是在web上运行 所以我就直接在web上测试了.

  • Faster 2010年07月5日 于 09:55

    Java取时间可以用System.currentTimeMillis()

  • jindw 2010年08月3日 于 12:34

    Java 时间不稳定估计是GC的影响吧.

Post comment

分类目录

最近文章

近期评论

文章归档

标签

.net AJAX button Comet CSS Discuz! DIV+CSS Flash Form Google HTML编辑器 IE8 Java JavaScript jQuery JSP md5 MySQLReback OAuth Oracle PHP php-fpm PNG Punny SkiyoTabs tab TagCloud Vista Web2.0 Windows7 上传 加密 图标 本站原创 模板 模板引擎 源码 登录 短网址 石家庄 算法 编译 面向对象 魔术方法

链接表