阅读更多

23顶
2踩

编程语言

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

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

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

  • 基于springboot框架的毕业设计系统的开发(完整Java源码+数据库sql文件+项目文档+Java项目编程实战+编程练手好项目).zip

    在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对学生毕业设计信息管理的提升,也为了对学生毕业设计信息进行更好的维护,毕业设计系统的出现就变得水到渠成不可缺少。通过对毕业设计系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 毕业设计系统通过MySQL数据库与Spring Boot框架进行开发,毕业设计系统能够实现教师管理,公告类型管理,班级管理,课题信息管理,任务类型管理,选题申请管理,学院管理,课题任务管理,最终成绩管理,公告信息管理,学生管理等功能。 通过毕业设计系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源

  • hegaojian_WanAndroid_1742851819.zip

    hegaojian_WanAndroid_1742851819.zip

  • 《基于YOLOv8的违章停车识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • 使用matlab基于卷积神经网络实现的汉语短句语音识别,输出拼音( 我正在学torch,这个已停止更.zip

    毕业设计

  • 移动开发_iOS_OpenUrl_快捷方式创建技术_App桌_1742856949.zip

    移动开发_iOS_OpenUrl_快捷方式创建技术_App桌_1742856949.zip

  • 《基于YOLOv8的体育发展识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • uappkit_uapp_1742847088.zip

    app开发

  • 蓝桥杯python相关资源

    蓝桥杯python相关资源

  • 招聘_实时聊天_APP_React_Redux_前后端分离_1742854279.zip

    招聘_实时聊天_APP_React_Redux_前后端分离_1742854279.zip

  • 《基于YOLOv8的玩具产品分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • vscode1.98.1版本,适用于macos

    vsco1.98.1版本,适用于macos

Global site tag (gtag.js) - Google Analytics