阅读更多

23顶
2踩

编程语言

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

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

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

  • java+sql server项目之科帮网计算机配件报价系统源代码.zip

    sql server+java项目之科帮网计算机配件报价系统源代码

  • 【java毕业设计】智慧社区老人健康监测门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

  • 【java毕业设计】智慧社区心理咨询平台(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 计算机系统基础实验LinkLab实验及解答:深入理解ELF文件与链接过程

    内容概要:本文档详细介绍了LinkLab实验的五个阶段,涵盖了ELF文件的组成、符号表的理解、代码节与重定位位置的修改等内容。每个阶段都有具体的实验要求和步骤,帮助学生理解链接的基本概念和链接过程中涉及的各项技术细节。 适合人群:计算机科学专业的本科生,特别是正在修读《计算机系统基础》课程的学生。 使用场景及目标:① 通过实际操作加深对链接过程和ELF文件的理解;② 掌握使用readelf、objdump和hexedit等工具的技巧;③ 实现特定输出以验证实验结果。 阅读建议:实验过程中的每个阶段都有明确的目标和提示,学生应按照步骤逐步操作,并结合反汇编代码和二进制编辑工具进行实践。在完成每个阶段的实验后,应及时记录实验结果和遇到的问题,以便于总结和反思。

  • 基于关键词的历时百度搜索指数自动采集资料齐全+详细文档+高分项目+源码.zip

    【资源说明】 基于关键词的历时百度搜索指数自动采集资料齐全+详细文档+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 用C语言写出一个简单的圣诞树,让你的朋友们体验一下程序员的浪漫,点开即令哦!

    第一次发文的小白,解释的不好,各位大佬勿怪哦

  • 免费下载:Hilma af Klint a Biography (Julia Voss)_tFy2T.zip

    免费下载:Hilma af Klint a Biography (Julia Voss)_tFy2T.zip

  • 屏幕截图 2024-12-21 172527.png

    屏幕截图 2024-12-21 172527

  • 2024级涉外护理7班马天爱劳动实践总结1.docx

    2024级涉外护理7班马天爱劳动实践总结1.docx

  • IndexOutOfBoundsException(解决方案).md

    IndexOutOfBoundsException(解决方案)

  • 【java毕业设计】智慧社区垃圾分类门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

Global site tag (gtag.js) - Google Analytics