`
cppmule
  • 浏览: 447245 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

初次体验hiphop-php,转化php为C++代码。

    博客分类:
  • php
 
阅读更多

初次体验hiphop-php,转化php为C++代码。

 

 

昨天facebook在github上发布了hiphop-php的源代码。之前听说这玩意能把php代码翻译成c++代码,然后带来巨大的性能提升,所以第一时间编译了一份hiphop-php。

我的机器环境是Centos 5.3 x86_648G内存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/usertbb 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-Step历史及名称由来.doc

    【HipHop-Step的历史与名称由来】 HipHop-Step,作为街舞文化的重要组成部分,起源于20世纪70年代末至80年代初的纽约。它的诞生源自多种舞蹈形式的融合,其中包括非洲舞蹈、Capoeira、B-Boy舞蹈、Jazz舞以及Tap舞...

    Hip-Hop-2020:Netzwerkanalyse嘻哈2020

    嘻哈2020 Netzwerkanalyse嘻哈2020 Unsere主持人职位:分析《Hip-Hop-Künstler》和《 Dermark》的歌曲,在MTV 2020年Jahrescharts百佳排行榜中脱颖而出。 UnsereKünstlerauswahlbezieht sip auf keine feste Hip-...

    Hiphop-API:用于实时应用程序的 Hiphop API

    总之,Hiphop API是一个为实时应用程序提供强大支持的JavaScript工具包,它通过简洁的API和开源的方式,为开发者带来高效的实时应用开发体验。通过深入了解和实践,开发者可以充分利用Hiphop API的优势,创建出更加...

    HipHopPHPFacebook出品的PHP虚拟机运行时和JIT

    这款工具通过将PHP源代码转换为C++代码,然后编译成机器码,从而实现了类似静态编译的效果,有效地减少了运行时的解释开销。这一创新技术使得Facebook能够处理其海量的PHP代码,提升了其网站的响应速度和整体性能。 ...

    hiphop无穷动

    hiphop无穷动

    hip-hop-advice:饶舌歌手为用户提供智慧的荒谬视差网站

    "hip-hop-advice"项目以其饶舌歌手为用户提供智慧的荒谬视差网站,巧妙地融合了音乐文化与前端技术,创造出独特的用户体验。这个项目基于Node.js、Angular和Grunt构建,充分展示了JavaScript在现代Web开发中的强大...

    billboard-hiphop-chart-api

    其中,广告牌(Billboard)的嘻哈图表(Hip-Hop Chart)更是备受关注,它反映了当下最热门的嘻哈音乐趋势。本篇文章将围绕“广告牌嘻哈图表API”展开,探讨如何利用Python语言与其进行交互,获取并分析实时的嘻哈...

    Sa-HipHop App-crx插件

    Sa-HipHop:南非的灵魂音乐在Sa-HipHop的此处下载,我们随时为您提供最好,最精彩的Sa Hip Hop和音乐下载。 您可以在sa-hiphop.com上找到最优秀的南非音乐人才,然后下载音轨或直接从您的Andriod手机,iphone或PC...

    执行PHP代码的虚拟机HHVM.zip

    HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。Facebook表示,HHVM将替代HPHPi,用于所有的PHP执行。根据 Facebook...

    Raslani Hip Hop

    "Raslani Hip Hop"可能是指一种特定的字体风格,它结合了Hip Hop文化的元素,旨在为文本内容增添独特的个性和动态感。这种字体可能广泛应用于音乐制作、广告设计、游戏界面、社交媒体帖子以及各种创意项目中,以吸引...

    zend-loader-php5.6-linux-x86_64.tar.gz

    PHP 5.6是PHP语言的一个较旧但广泛使用的版本,它引入了一些关键特性,如命名空间的改进、 traits 的支持以及对HHVM(HipHop Virtual Machine)的优化。然而,随着PHP版本的发展,5.6已经不再受到官方的维护和支持,...

    Lil Pump高清壁纸嘻哈音乐主题「Lil Pump HD Wallpapers Hip Hop Music Theme」-crx插件

    享受您最喜爱的Hip Hop艺术家的高清图像 - Lil Pump。每个新标签都会获得不同的壁纸。 如果您喜欢嘻哈音乐,那么您肯定对Lil Pump有所了解。 我们添加了您最喜欢的艺术家的高清背景。 此外,借助我们的Twitter小部件...

    cpp-HIP将CUDA转换为可移植C代码

    2. **编译与链接**:HIP使用hipcc编译器,它可以自动识别CUDA代码并将其转化为对应的HIP代码,然后编译为可执行程序。这简化了编译流程,使得开发者不必关心底层的硬件细节。 3. **并行计算模型**:HIP保持了CUDA的...

    nvidia-container-runtime_3.4.2-1_amd64.deb

    nvidia-container-runtime_3.4.2-1_amd64

    php-5.6.34.zip

    除此之外,PHP 5.6.34还支持了HHVM(HipHop Virtual Machine),这是一种Facebook开发的高性能PHP解释器,它将PHP代码编译成HHVM能够执行的字节码,进一步提高了执行效率。 总结,PHP 5.6.34是一个集稳定、高效、...

    简单hiphop街舞教学视频.doc

    简单hiphop街舞教学视频.doc

    Lil Peep HD Wallpapers Hip Hop Music Theme-crx插件

    如果您喜欢Lil Peep及其音乐,就不想错过此扩展 欣赏流行的嘻哈艺术家的高清背景。 喜欢嘻哈音乐吗? Lil Peep呢? 如果您愿意的话,多亏他的死忠粉丝,请不要犹豫安装此扩展程序并享受这位著名艺术家的高清背景。...

    hip-hop-scraper:[个人]确定是否有任何指定的嘻哈艺术家发布了任何新内容

    8. **持续集成与版本控制**:项目名为"hip-hop-scraper-master"暗示了可能使用了Git进行版本控制,这有助于代码的版本管理和团队协作。 总的来说,"嘻哈艺人内容抓取器"是一个综合运用了Java编程、文件处理、网络...

Global site tag (gtag.js) - Google Analytics