阅读更多

23顶
2踩

编程语言

原创新闻 Facebook的PHP开源项目揭秘:HipHop

2010-02-03 11:08 by 副主编 zly06 评论(18) 有11863人浏览

前不久,JavaEye曾报道,facebook正在重写PHP runtime。今天,在facebook的官方博客上,其项目负责人赵海平(Haiping Zhao)发表了一篇与此相关的文章,终于揭开了这个神秘的开源PHP项目的面纱。

 


   
点击访问:HipHop for PHP: Move Fast

 

 如无法访问,可点击下载此原文附件

 HipHop
本身并不是一个编辑器,更确切的说,它是一个源代码转换器。将PHP代码转换为高度优化的C++代码,然后再使用g++编译器编译。它可以保持语义等效地执行源代码,但牺牲了一些很少会使用到的功能,比如eval()。为了进一步的提升性能,HipHop包含一个code transformer,一个重新实现的PHP runtime系统,并利用这些性能的优化的优势,对许多共同的PHP扩展进行了重写。


转换中的主要步骤:
1. 静态分析:收集声明和依赖的相关信息
2. 类型推断(Type inference):选出最合适的类型,是C++ scalar,String, Array, classes, Object还是Variant等…
3. 代码生成。大部分是直接将PHP的语句和表达式对应为 C++的语句和表达式。


 
与此同时,开发者还提供了—HPHPi,一个实验性的解释器。使用HPHPi,在运行之前也不必编译PHP源代码。

HipHop在保持了PHP优点的同时,也兼得了C++的性能优势。项目总共有30万行代码,5000多个单元测试。所有这些都将以PHP开源许可证形式发布到GitHub。

 

点击访问HipHop wiki:http://github.com/facebook/hiphop-php/wikis(目前还无法访问)

  • 大小: 69.2 KB
  • 大小: 13.7 KB
  • 大小: 2.5 KB
来自: facebook
23
2
评论 共 18 条 请登录后发表评论
18 楼 pengzhaocheng16 2012-06-22 22:31
激动,最近项目要用php,哈哈
17 楼 化蝶自在飞 2010-04-04 04:34
支持一下嘞.php,雄起.
项目负责人赵海平?听名字是中国人,Facebook依然被墙.
16 楼 zm9913 2010-02-05 15:50
yidao620c 写道
超级潜水艇 写道
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same


我看你潛水艇天天套套

超级潜水艇 写道
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same


我看你潛水艇天天套套

超级潜水艇 写道
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same


我看你潛水艇天天套套

虽然不是用PHP但同样上套
15 楼 wangqiangcattsoft 2010-02-05 14:39
14 楼 yidao620c 2010-02-05 11:11
超级潜水艇 写道
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same


我看你潛水艇天天套套

超级潜水艇 写道
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same


我看你潛水艇天天套套

超级潜水艇 写道
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same


我看你潛水艇天天套套
13 楼 alpha1130 2010-02-05 09:45
湿鸟!!!!
12 楼 kjj 2010-02-04 13:18
wujiazhao88 写道
还不如转为C,效率更高

不如转汇编,效率最高
11 楼 shinezhou 2010-02-04 11:59
牛b~


10 楼 conanca 2010-02-04 10:52
其项目负责人赵海平(Haiping Zhao)

是华裔工程师哦~

facebook果然人才辈出
9 楼 modun 2010-02-03 20:43
灰常鸡冻!
8 楼 wujiazhao88 2010-02-03 19:12
还不如转为C,效率更高
7 楼 zy_pub 2010-02-03 16:55
accpxudajian 写道
灰常鸡冻!
leric 写道
灰常鸡冻!

无敌

6 楼 accpxudajian 2010-02-03 13:09
灰常鸡冻!
leric 写道
灰常鸡冻!

无敌
5 楼 jejwe 2010-02-03 13:05
jejwe 写道
可以看看这篇,更加完整。

http://news.cnblogs.com/n/56377/
4 楼 jejwe 2010-02-03 13:05
可以看看这篇,更加完整。
3 楼 超级潜水艇 2010-02-03 12:50
我也很鸡冻,激动的时候也不能不上套
geweixin 写道
leric 写道
灰常鸡冻!

the same

2 楼 geweixin 2010-02-03 12:45
leric 写道
灰常鸡冻!

the same
1 楼 leric 2010-02-03 12:16
灰常鸡冻!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • zone1:1 区救援库

    标记:acts_as_taggable_on JavaScript 依赖项:jQuery、jQuery UI 分页:will_paginate 文件元数据:适合 后台作业:resque + redis 性能:Rails 低级缓存到本地磁盘存储 图像处理:ImageMagick、RMagick gem ...

  • 诗歌rails之Rails插件分类

    原文地址:A taxonomy of Rails plugins Rails开发人员的一个最大的障碍是学习写插件的基础原则。Ruby的动态性和它所提供的代码重用的多种技术让写插件更复杂。...为什么写插件? 写插件可以:...

  • Rails插件分类

    为什么写插件? 写插件可以: 1,让代码分享更有效,无论是在不同的项目间抑或在同一项目里 2,允许你发布通用代码给社区 3,通过测试一次和重用多次来节省时间和增加你的信心 4,以一个健壮的方式分享功能性,特别...

  • Web应用的缓存设计模式

    缓存设计模式?  是什么 做什么 用处?

  • Web应用的缓存设计模式(转)

    acts_as_cached has_many :blogs end class Blog ActiveRecord : :Base acts_as_cached belongs_to :blog_content, :dependent => :destroy belongs_to :account, :counter_cache => true end class ...

  • 【转载】Web应用的缓存设计模式

    使用以上两种对象缓存的设计模式,你除了需要添加一条缓存声明语句acts_as_cached以外,不需要显式编写一行代码   有效利用缓存的代价如此之低,何乐而不为呢? 以上两种缓存设计模式都不需要显式编写缓存代码,...

  • Ruby on Rails 2.0的新特性介绍

    在详细的介绍Rails2.0之前,我要向那些为Rails框架做出过贡献的每一个人致以深深的谢意,不论是像一个家庭那样其乐融融的Rails核心开发团队,还是成千上万的、而且年复一年为Rails提交补丁,积极参与Rails社区人们。...

  • 从C#.net到RoR - GuruDigger的的迁移经验分享

    Tag插件acts-as-taggable-on E. 评论插件acts_as_commentable_with_threading F. 支付插件activemerchant ===总结=== 迁移框架是个体力活,要保证数据正确,功能一致,同时还要加上一些新功能,不过RoR的框架越来越...

  • 常用ruby gem

    A new release 2.13.2 of RMagick is now available on github as well as rubygems. This release will fix the installation issues due to ruby 1.9.3 and ImageMagick 6.8+. You can install it the usual way ...

  • C语言基础语法与程序设计入门讲解

    c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。hello,world #include<stdio.h>  int main() {     /*在双引号中间输入Hello World*/      printf("Hello World");     return 0;  } 注:在最新的C标准中,main函数前的类型为int而不是void c语言的具体结构简单来说,一个C程序就是由若干头文件和函数组成。#include <stdio.h>就是一条预处理命令, 它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。函数就是实现代码逻辑的一个小的单元。必不可少之主函数一个C程序有且只有一个主函数,即main函数。C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。而main前面的int就是主函数的类型.printf()是格式输出函数,这里

  • 部门绩效考核表模板(基于KPI,以月度为例1).xlsx

    部门绩效考核表模板(基于KPI,以月度为例1)

  • 基于YOLOv5的移动机器人动态视觉SLAM算法研究.pdf

    基于YOLOv5的移动机器人动态视觉SLAM算法研究.pdf

  • 基于二阶锥优化的电气综合能源系统协调调度策略研究与仿真-利用MATLAB及CPLEX平台精准求解,MATLAB代码:基于二阶锥优化电气综合能源系统优化调度研究 关键词:电气综合能源 优化调度 二阶锥

    基于二阶锥优化的电气综合能源系统协调调度策略研究与仿真——利用MATLAB及CPLEX平台精准求解,MATLAB代码:基于二阶锥优化电气综合能源系统优化调度研究 关键词:电气综合能源 优化调度 二阶锥优化 参考文档:《考虑气电联合需求响应的气电综合能源配网系统协调优化运行_刘天琪》参考部分配电网设备模型,非完全复现,具体以店主自写文档为准 仿真平台:MATLAB+CPLEX 平台 优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品 主要内容:代码主要做的是电气综合能源系统的优化调度策略,气网部分和电网部分的相关约束都通过二阶锥或者其他线性化的方法进行化简,模型清晰且容易求解,经过化简后采用CPLEX实现求解,可以在此基础上扩加储能、SVG、OLTC以及电容器等相关设备,升级版的程序店主也有,该代码适合新手学习以及在此基础上进行拓展,代码质量非常高,保姆级的注释以及人性化的模块子程序,所有数据均有可靠来源 ,基于二阶锥优化的电气综合能源系统优化调度MATLAB代码研究

  • 春节文化主题活动策划与作文素材集锦

    春节主题作文素材 初中语文主题学习 2025年01月21日 20:26 山西 写年味 开头:新年的脚步渐近,街头巷尾瞬间被年味填满。大红灯笼高高挂起,恰似熟透的红柿子,在风中轻晃,透着喜庆。街边店铺张贴着崭新春联,墨香在空气中氤氲。年货摊前人头攒动,吆喝声、谈笑声交织。孩子们手持糖葫芦,欢笑着穿梭其中,那鲜艳糖衣与红彤彤脸蛋相映,年味愈发浓郁,似要将寒冬暖化 。 结尾:置身这浓烈年味里,我沉醉不已。它是团圆温馨,是对过往的怀念、对未来的期许。当烟花在夜空绽放,那光亮如同希望之火。愿这份年味永不消散,伴我们走过岁岁年年,让温暖与幸福在生活中延续 。 满分作文题目: 《灯火映新岁,年味满人间》 《街头巷尾,年味悠长》 《大红灯笼,摇曳年味时光》 《墨香春联,晕染年味画卷》 《糖葫芦串起的年味》 开头:记忆深处,年味是外婆手中的剪纸。每至腊月,外婆便戴上老花镜,坐在暖阳下,手中红纸在剪刀下翻转,不一会儿,栩栩如生的花鸟鱼虫便跃然纸上。她脸上慈祥笑容,和着剪纸独特艺术魅力,成为我对年味最初印象。如今,外婆已年迈,可那份年味记忆,从未淡去 。 结尾:重拾外婆剪纸,往昔春节场景浮现

  • dbeaver离线安装版 (数据库管理工具dbeaver-ce-23离线驱动+安装包+使用说明) 内置sqlserver、mysql、oracle、opengauss数据库 可满足日常使用

    dbeaver离线安装版。(数据库管理工具dbeaver-ce-23离线驱动+安装包+使用说明) 内置sqlserver、mysql、oracle、opengauss数据库。可满足日常使用。

  • 基于LEBERT-CRF和知识图谱的中文地址修正补全方法.pdf

    基于LEBERT-CRF和知识图谱的中文地址修正补全方法.pdf

  • (最新!!)1997-2022年《中国教育经费统计年鉴》合集

    比较全面、系统地反映了历年全国教育经费来源和使用的情况,为国家和地方编制教育发展规划制定教育财政政策提供了重要的参考依据。它对于研究教育经费结构和使用效益有一定价值对于各地之间的情况交流,提高教育财务管理水平,也将会起到促进作用。 全国教育经费统计资料的各项数据是从最基层单位开始填报,经过乡(镇)、县(市、区)、地(市)、省(自治区、直辖市)等教育主管部门层层汇总的。

  • apache-commons-lang-javadoc-2.6-15.el7.x64-86.rpm.tar.gz

    1、文件内容:apache-commons-lang-javadoc-2.6-15.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/apache-commons-lang-javadoc-2.6-15.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

  • 基于向量特征的车辆轨迹预测.pdf

    基于向量特征的车辆轨迹预测.pdf

  • apache-rat-plugin-0.8-13.el7.x64-86.rpm.tar.gz

    1、文件内容:apache-rat-plugin-0.8-13.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/apache-rat-plugin-0.8-13.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

Global site tag (gtag.js) - Google Analytics