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相关推荐

  1. ASP.NET Core Identity 实战(1)——Identity 初次体验

    ASP.NET Core Identity是用于构建ASP.NET Core Web应用程序的成员资格系统,包括成员资格.登录和用户数据存储 这是来自于 ASP.NET Core Identity 仓 ...

  2. jQuery课程介绍、Query的介绍、Query初次体验、jQuery再次体验、jQuery中的顶级对象

    jQuery课程介绍 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  3. Django初次体验

    Django初次体验 关于django的安装,宝宝们可以参考django简介以及安装 Django框架的搭建 在终端中进入需要建立项目的目录 执行: django-admin startproject ...

  4. 【RT-Thread Smart】ART-Pi Smart 开发板开箱及爱之初次体验

    ART-Pi Smart 开发板开箱及爱之初次体验 首先, 感谢RT=Thread给的试用机会, 感谢熊大的指导. 本文ART-Pi Smart开箱及初次体验内置应用 标题开箱 收到有几天了.我们一步 ...

  5. deepin win10字体_购机指南 | Deepin 初次体验,国产OS还有很长路要走

    2020版购机指南目录 购机指南 | 剁手前一分钟的挣扎,最终还是下船了​mp.weixin.qq.com 购机指南 | 入手Magicbook 14 Linux版,冲着多屏协同​mp.weixin. ...

  6. Xxl-Job 初次体验

    Xxl-Job 初次体验 一.定时任务-前置知识 二.演变机制 三.xxl-Job 设计思想 四.xxl-job 实战 1. 调度中心部署 2. 编写执行器简单使用一下 2.1. 让执行器run起来! ...

  7. Win8.1安装与初次体验(图赏)

    1下载与安装 微软在8月1日正式发布了Windows8.1企业预览版,并开放下载试用.我们最先进行了下载安装和体验.对于这次系统镜像下载并无什么格外限制,但是要有微软账户,而在win8.1系统用户中会 ...

  8. 【原创】POSTGRESQL 分区表初次体验

    POSTGRESQL的分区和MYSQL不同,MYSQL是有专门的分区表, 而POSTGRESQL的分区则利用它本身的面向对象的特性来做. 下面我们来简单的体验下. 我们先创建一张父表. 记住,所有的分 ...

  9. (转)初次体验.net Ajax无刷新技术

    早就听说Ajax技术了,传说中是一种很牛的东西,号称无刷新,其实是在web上通过javascript,使用异步的xmlhttp请求,实现无刷新的web界面.可惜一直没有体验过, 先后听做PHP的朋友用 ...

最新文章

  1. 系统服务-----Activity服务的获取getSystemService
  2. 罗田用好“大数据”力促扶贫更精准
  3. eclipse的tomcat插件使用下载(转)
  4. KVM虚拟机的优化历程---按需优化
  5. 汇编语言——《子程序应用(数制转换)程序设计》实验任务书
  6. note deletion case
  7. 发送邮件 的类 C# .net
  8. linux系统管理Linux系统实验,实验三 linux系统管理
  9. Git和SVN的区别,Git的使用方法大全
  10. 一般图最大匹配(UOJ-79)
  11. 树言树语:AIR的 应用方向在哪里?
  12. php 提取字段为key,从一个serialize过的array的字符串中取出中取对应KEY的value
  13. 【Java从0到架构师】Spring - 整合 MyBatis
  14. highchart 曲线图
  15. hdu3081 Marriage Match II
  16. Python学习手册--第一部分(使用入门)
  17. python 生成器
  18. 2017年上半年软件工程师考试--程序员(上午)考点总结二
  19. c语言中各变量占得字节,在C语言中各种数据类型各占多少位
  20. 解决Rabbitmq连接超时问题

热门文章

  1. efishell无法开机shell_电脑出现EFIshellversion解决方法W1048/海尔青春小蓝
  2. cytoscape插件下载_cytoscape插件BinGO安装以及GO富集分析和网络可视化
  3. php access token缓存,微信小程序PHP 生成access_token存入缓存
  4. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
  5. 华为机考HJ8合并表记录
  6. 1. 编程规范和编程安全指南--python
  7. 【camera】5.相机内嵌图像处理(ISP)介绍
  8. Select函数实现原理分析
  9. HDU 3306 Another kind of Fibonacci 矩阵快速幂
  10. 基于道路标线的城市环境单目定位