初次体验hiphop-php
facebook在github上发布了hiphop-php的源代码。之前听说这玩意能把php代码翻译成c++代码,然后带来巨大的性能提升,所以第一时间编译了一份hiphop-php。
我的机器环境是
- Centos 5.3 x86_64
- 8G内存
- Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
安装注意事项
编译的时候碰到的问题很多,但是基本上都是按照wiki上的步骤进行的。我觉得比较重要的几点:
- wiki上的Required Packages包包列表都要检查一遍,比如版本号,是否安装过,像binutils-dev这种就很容易忽略
- 版本符合的话,直接用yum安装这些包就可以了
- wiki上有类似Boost 1.37 is the minimum version字样,说明开发者可能就是在这个版本下开发的,我试了下最新版本的boost,编译到后来反而出错
- 如果yum上没有符合版本的lib库,可以手动编译,但是编译时建议就放在自己的home下,比如:
./configure --prefix=/home/user
- tbb Intel’s Thread Building Blocks这个包有些麻烦,记得按照wiki上说的步骤安装
测试hiphop-php
安装完成之后,时间也不是太多,所以我仅仅是简单的测试了一个php文件,代码如下:
<?php
$i = 0;
for($j = 0; $j < 1000000; $j++)
$i += $j;
echo $i, "n";
?>
用hphp进行编译:
hphp/hphp test.php --keep-tempdir=1 --log=3
提示生成新的可执行文件
/tmp/hphp_c9sbnG/program
做一下运行时间对比:
$ time php test.php
499999500000
real 0m0.307s
user 0m0.299s
sys 0m0.007s
$ time /tmp/hphp_c9sbnG/program
499999500000
real 0m0.259s
user 0m0.194s
sys 0m0.008s
没看出来编译成c++代码之后有太大的性能提升,估计是俺的使用手法问题?在邮件组里观察几天再说。
Update
facebook将优化之后的编译参数提交到了github,于是我重新编译并测试一遍这段相同的代码:
$ time /tmp/hphp_c9sbnG/program
499999500000
real 0m0.140s
user 0m0.076s
sys 0m0.006s
可以看到,经hiphop编译后的php,执行时间几乎快了一倍。
初次体验hiphop-php相关推荐
- ASP.NET Core Identity 实战(1)——Identity 初次体验
ASP.NET Core Identity是用于构建ASP.NET Core Web应用程序的成员资格系统,包括成员资格.登录和用户数据存储 这是来自于 ASP.NET Core Identity 仓 ...
- jQuery课程介绍、Query的介绍、Query初次体验、jQuery再次体验、jQuery中的顶级对象
jQuery课程介绍 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...
- Django初次体验
Django初次体验 关于django的安装,宝宝们可以参考django简介以及安装 Django框架的搭建 在终端中进入需要建立项目的目录 执行: django-admin startproject ...
- 【RT-Thread Smart】ART-Pi Smart 开发板开箱及爱之初次体验
ART-Pi Smart 开发板开箱及爱之初次体验 首先, 感谢RT=Thread给的试用机会, 感谢熊大的指导. 本文ART-Pi Smart开箱及初次体验内置应用 标题开箱 收到有几天了.我们一步 ...
- deepin win10字体_购机指南 | Deepin 初次体验,国产OS还有很长路要走
2020版购机指南目录 购机指南 | 剁手前一分钟的挣扎,最终还是下船了mp.weixin.qq.com 购机指南 | 入手Magicbook 14 Linux版,冲着多屏协同mp.weixin. ...
- Xxl-Job 初次体验
Xxl-Job 初次体验 一.定时任务-前置知识 二.演变机制 三.xxl-Job 设计思想 四.xxl-job 实战 1. 调度中心部署 2. 编写执行器简单使用一下 2.1. 让执行器run起来! ...
- Win8.1安装与初次体验(图赏)
1下载与安装 微软在8月1日正式发布了Windows8.1企业预览版,并开放下载试用.我们最先进行了下载安装和体验.对于这次系统镜像下载并无什么格外限制,但是要有微软账户,而在win8.1系统用户中会 ...
- 【原创】POSTGRESQL 分区表初次体验
POSTGRESQL的分区和MYSQL不同,MYSQL是有专门的分区表, 而POSTGRESQL的分区则利用它本身的面向对象的特性来做. 下面我们来简单的体验下. 我们先创建一张父表. 记住,所有的分 ...
- (转)初次体验.net Ajax无刷新技术
早就听说Ajax技术了,传说中是一种很牛的东西,号称无刷新,其实是在web上通过javascript,使用异步的xmlhttp请求,实现无刷新的web界面.可惜一直没有体验过, 先后听做PHP的朋友用 ...
最新文章
- 系统服务-----Activity服务的获取getSystemService
- 罗田用好“大数据”力促扶贫更精准
- eclipse的tomcat插件使用下载(转)
- KVM虚拟机的优化历程---按需优化
- 汇编语言——《子程序应用(数制转换)程序设计》实验任务书
- note deletion case
- 发送邮件 的类 C# .net
- linux系统管理Linux系统实验,实验三 linux系统管理
- Git和SVN的区别,Git的使用方法大全
- 一般图最大匹配(UOJ-79)
- 树言树语:AIR的 应用方向在哪里?
- php 提取字段为key,从一个serialize过的array的字符串中取出中取对应KEY的value
- 【Java从0到架构师】Spring - 整合 MyBatis
- highchart 曲线图
- hdu3081 Marriage Match II
- Python学习手册--第一部分(使用入门)
- python 生成器
- 2017年上半年软件工程师考试--程序员(上午)考点总结二
- c语言中各变量占得字节,在C语言中各种数据类型各占多少位
- 解决Rabbitmq连接超时问题
热门文章
- efishell无法开机shell_电脑出现EFIshellversion解决方法W1048/海尔青春小蓝
- cytoscape插件下载_cytoscape插件BinGO安装以及GO富集分析和网络可视化
- php access token缓存,微信小程序PHP 生成access_token存入缓存
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
- 华为机考HJ8合并表记录
- 1. 编程规范和编程安全指南--python
- 【camera】5.相机内嵌图像处理(ISP)介绍
- Select函数实现原理分析
- HDU 3306 Another kind of Fibonacci 矩阵快速幂
- 基于道路标线的城市环境单目定位