阅读更多

23顶
2踩

编程语言

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

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

前不久,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 ...

  • 3796 i-FRAME 安装、操作和维护手册

    3796 i-FRAME 安装、操作和维护手册

  • 我的visio画图 资源备用

    我的visio画图

  • NPOI是指构建在POI 3.x版本之上的一个程序

    NPOI可以在没有安装Office的情况下对Word或Excel进行读写,NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目

  • 基于STM32F103C8单片机设计-旋转编码器数码管显示程序KEIL工程源码.zip

    STM32学习软件编程资料,STM32F103C8单片机经典外设应用设计实例软件源代码,KEIL工程文件,可供学习参考。

  • VoLTE高丢包优化指导书.xlsx

    VoLTE高丢包优化指导书

  • LTE容量优化高负荷小区优化指导书.docx

    5G通信行业、网络优化、通信工程建设资料

  • 中国移动无线、传输专业项目全生命周期、建设期、施工期控制标准.docx

    5G通信行业、网络优化、通信工程建设资料

  • 基于Springboot+Vue校园周边美食探索及分享平台毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

  • 基于Springboot+Vue善筹网(众筹)前后台实现设计-毕业源码案例设计.zip

    网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。系统化是必要的,设计网上系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于信息的维护和检索也不需要花费很多时间,非常的便利。 网上系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。 网上系统在让售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升数据的可靠性,让系统数据的错误率降至最低。 关键词:vue;MySQL;SpringBoot框架 【引流】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

  • 203ssm-mysql-jsp 包头市交通管理局路况查询系统.zip(可运行源码+数据库文件+)

    该课题主要是以SpringMVC模式运行的,采用了mysql数据库进行数据的管理,掌握并且熟练使用百度API相关技术。系统分为了管理员用户和一般用户,主要有以下模块: 管理员用户: 1.实时路况管理:实时路况的信息采用了百度地图进行直观的管理,利用了GIS相关技术进行管理,能够让用户方便的第一时间查看到相应的地图信息,以及实时路况信息。 2.投诉留言管理:实现了对投诉留言信息的查看和回复。 3.系统信息设置:实现了系统的访问数据的统计,以及针对系统的管理员 用户和管理员密码进行管理。 4.用户信息管理:管理了一般用户的基本信息情况,针对用户的资料进行修改管理。 一般用户: 1.用户资料管理:实现了用户个人的资料信息管理。 2.路况信息查看:实现了对路径的实时信息的查看,某个路段在某时间的交通情况的查看,以三种情况代表路况情况(拥挤、缓行和畅通) 3.路况分析:采用了折线图,分析每天或者某个月的路况信息,以折线图形式直观展示。该功能采用jFreeChart库实现。 4.留言发布:针对一些路况信息,进行留言反馈,并能查看管理员反馈信息。

  • 施工现场安全技术交底模板.doc

    5G通信行业、网络优化、通信工程建设资料。

Global site tag (gtag.js) - Google Analytics