32位Ubuntu编译hiphop全攻略

  hiphop是facebook的一个开源项目。 目的是将php编译成更高效的c++代码在服务器上运行以达到增快速度的目的。据说能做到10~20倍的提升。
  Hiphop的项目地址在:https://github.com/facebook/hiphop-php。官方hiphop只有64位版本,所以该网站所有信息都是以64位机器为基础。幸好有位买不起64cpu的哥们在:https://github.com/metagoto/hiphop-php 提供了32位版本,不过这哥们显然没把这当回事,放上去后就只顾着更新代码,咋编译还是照抄官方的。为了能够让更多的人在32位机器上运行hiphop,下面将近期编译hiphop的过程给大家做个简单介绍。
  本机编译环境:32位Ubuntu10.1.4。
  依赖包: cmake 2.6 is the minimum version g++/gcc 4.3 is the minimum version Boost 1.37 is the minimum version flex bison re2c libmysql libxml2 libmcrypt libicu 4.2 is the minimum version openssl binutils libcap gd zlib tbb Intel's Thread Building Blocks Oniguruma libpcre libexpat libmemcached ubuntu可以用下面的命令加载以上包, sudo apt-get install git-core cmake g++ libboost-dev flex bison re2c libmysqlclient-dev libxml2-dev libmcrypt-dev libicu-dev openssl binutils-dev libcap-dev libgd2-xpm-dev zlib1g-dev libtbb-dev libonig-dev libpcre3-dev autoconf libtool libcurl4-openssl-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev wget libmemcached-dev 在编译过程中遇到缺少其它包的情况,也可以用:sudo apt-get install 来安装。
  在默认路径"/home/user"(这里的user指的是你linux的用户目录) git clone git://github.com/metagoto/hiphop-php.git cd hiphop-php export CMAKE_PREFIX_PATH=/home/user/ //user同上面说明 export HPHP_HOME=`/bin/pwd` export HPHP_LIB=`/bin/pwd`/bin git submodule init git submodule update 执行最后一步命令的时候,或许会出现一个错误: fatal: reference is not a tree: 208b1a075c2448e1fc0c61d4bb268b161a3d992a Unable to checkout '208b1a075c2448e1fc0c61d4bb268b161a3d992a' in submodule path 'src/third_party/libmbfl' 在google中输入:208b1a075c2448e1fc0c61d4bb268b161a3d992a 查询,就会发现这个错误时因为包libmbfl已经改名为libmbf-old,而上面的代码中还没来得及做相应的修改,解决方法是将libmbf-old源代码下载到:src/third_party/libmbfl中。继续。 cd .. hiphop配置已到一段落,下面需要做的是安装2个第三方库:libevent和libCurl。
  这2个包为什么需要独立出来,而不是一开始就安装呢?从下面的安装过程中你就能得到答案:
  libevent包 wget http://www.monkey.org/~provos/libevent-1.4.13-stab le.tar.gz tar -xzvf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable cp ../hiphop-php/src/third_party/libevent.fb-changes. diff . patch -p0 /home/user/hiphop-php/src/hphp/hphp test.php --keep-tempdir=1 --log=3 如果log没有错误的话,说明已经把php转化成了c++程序,这时候在tmp目录下会生成一个hphp打头的文件夹,里面有一个program文件,执行就会在控制台输出:hello world.
  就本机而言,经过上面的步骤已成功安装hiphop,各位读者请根据自己环境做出相应调整,希望大家在观看本文后能一次成功。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HHVMHipHop Virtual Machine,目前是3.0版本,出自Facebook,它先将PHP和Hack程序编译为中间字节码,然后通过just-in-time (JIT)编译器将字节码动态翻译为x64机器代码,应用上了非常多的编译优化技术。       JIT就是HHVM高效率的所在,所谓字节码:是一种人类无法阅读的代码,专门用来给编译器高效执行的。当HHVM首次加载项目时,它会将所有的PHP代码转换成字节码;字节码的生成是与平台无关的。       机器码是一系列供CPU执行的指令。用过汇编的都应该清楚机器码,估计没人喜欢用汇编编程。通过编译器就可以把汇编转成机器码,然后供CPU处理。JIT(即时)编译器是指在运行时才会去编译字节码。字节码会存放在内存中,然后JIT编译器会根据需要加载并编译所涉的字节码。       通过以上技术,HipHop和HHVM获得了性能的提升。据官方介绍,与PHP 5.2引擎 APC相比,HHVM可以处理的Web请求吞吐量增加了9倍,而内存消耗减少了5倍。实际上HHVM之前有朋友留言提起过它,亲自测试过后发现HHVM在提升PHP处理速度上非常有优势,非常适合大型的网站。       最近,HHVM已经更新到了3.0版本,HHVM几乎已经完全支持PHP 5.5了,但还是有不少bug,所以不是所有应用程序都可以运行。因此,Facebook准备让最流行的20个开源PHP项目能够运行在HHVM上。第一个已经支持的项目就是Wordpress。不过对于国内的Discuz兼容还不太完美。        除了开发出 HHVM 的 FaceBook 公司外,还有很多其他公司也采用了这个方案,在服务器上用 HHVM 运行 PHP 应用,包括 Wikimedia 和电子商务网站 Etsy。Wikimedia:Wikimedia 拥有大量的教育内容,包括著名的在线百科全书维基百科。维基百科每 个月吸引着近五亿的互联网用户,为了满足这样高级的需求,需要优化服务器的性能,和 PHP相比 HHVM 有一个显著的优点,它可以同时加载多个 SPU 核心, 而 PHP 是单线程语言,不能被并行化。维基百科部署了 HHVM 后,CPU 的负载从50%降到了10%,用户提交编辑时的平均响应时间减少到原来的一半,页面的平均加载时间从原来的1.3秒降到了0.9秒。
 Etsy: 拥有五千四百万用户的 Tesy 同样迫切需要提高服务器性能,Etsy 的工程师对比了HHVMPHP5.4 的性能,发现 HHVM 每秒可以处理280个服务器请求,而对于 PHP5.4,如果每秒的请求数超过了190次,服务器的响应时间就会急剧增加。
官网地址是:http://hhvm.com/ (不过国内无法访问) 标签:facebook开源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值