`
banditjava
  • 浏览: 159396 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Facebook发布HipHop JIT(译文)

阅读更多

Facebook发布HipHop JIT
Fackbook 发布了PHP运行环境HipHop。HipHop提供JIT能力,替代了PHP传统运行和提供更好的页面解释性能,更低的CPU占用率。HipHop有助于提供可观的PHP可测量性和与Java,Python和C++为后端的最优的接口

倒不如说用一个结构复杂的HTML的微缓存系统,或者源码级的代码翻译器,Facebook的赵海平描述HipHop如何工作:
为PHP而产生的HipHop从技术上自身不是一个编译器。在一宽程序上它是一个源代码翻译器。HipHop程式化的翻译你的PHP代码到高性能C++,然后用g++去编译它。HipHop用一个相当语义的手法来执行源代码,并去牺牲一些极少用的特性。例如eval(),作为替代的是提高了性能。HipHop包括一个代码翻译器,一个PHP运行期系统的实现,和针对许多普通PHP扩展,利用这些性能最优化的重写模块。
翻译器处理包括三个主要步骤:
1.    静态分析,在此系统收集信息,谁宣告什么和依赖
2.    类型推断,在此将选择在C++ scalars, String, Array, classes, Object,中具体的类型
3.    代码生成,多半是一个从PHP声明和表达式到C++的声明和表达式的直接对应
总体而言,HipHop允许Facebook为PHP保持最佳表现,当利用到C++的性能优势时。总计,他们已经写了超过300,000行的代码超过5,000个单元测试,所有这些发布在开源PHP协议下面GitHub上。

Facebook Releases HipHop JIT

Posted by: Eugene Ciurana on ?? 03, 2010 DIGG
Facebook announced the HipHop for PHP runtime environment. HipHop provides JIT capabilities to PHP that supercede the traditional PHP runtime and provide better page rendering performance with lower CPU usage. HipHop helps to provide massive PHP scalability and optimal interfacing with Java, Python, and C++ back-ends.

Rather than using a complicated HTML particle caching system, or source-level code transformations, Haiping Zhao of Facebook describes how HipHop works:
HipHop for PHP isn't technically a compiler itself. Rather it is a source code transformer. HipHop programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. HipHop executes the source code in a semantically equivalent manner and sacrifices some rarely used features -- such as eval() -- in exchange for improved performance. HipHop includes a code transformer, a reimplementation of PHP's runtime system, and a rewrite of many common PHP Extensions to take     advantage of these performance optimizations.

The transformation process includes three main steps:

1. Static analysis where the system collects information on who declares what and dependencies
2. Type inference where it chooses the most specific type between C++ scalars, String, Array, classes, Object, and Variant
3. Code generation which for the most part is a direct correspondence from PHP statements and expressions to C++ statements and expressions.

Overall HipHop allowed Facebook to keep the best aspects of PHP while taking advantage of the performance benefits of C++. In total, they have written over 300,000 lines of code and more than 5,000 unit tests. All of this is released on GitHub under the open source PHP license.

 

 

源文:http://www.theserverside.com/news/thread.tss?thread_id=59350

分享到:
评论
1 楼 四不象 2010-02-26  
看来会牺牲一些PHP的特性,估计serialize和匿名函数都不能用了

相关推荐

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

    《HipHop PHP:Facebook的PHP虚拟机与JIT技术解析》 HipHop PHP,是由Facebook在2010年推出的一款高效能的PHP运行时环境,旨在提高PHP代码的执行效率,尤其是对于大规模Web应用来说,它能显著提升性能。这款工具...

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

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

    Trace-based JIT简介(对Method JIT的改进)

    ### Trace-Based JIT简介(对Method JIT的改进) #### 背景与动机 在现代软件开发领域,即时编译器(Just-In-Time Compiler, JIT)技术对于提高程序运行时性能至关重要,尤其是在Java这样的动态类型语言中。传统的...

    jit spray source code

    **JIT Spray技术详解** JIT(Just-In-Time)喷射,也称为JIT内存喷射,是一种在计算机安全领域中常用于攻击的技术。它利用了动态编译器(如JIT编译器)的工作原理,将大量恶意代码注入到内存中,以便在特定条件触发...

    jit JavaScript

    JavaScript即时编译(Just-In-Time,简称JIT)是一种优化技术,它被广泛应用于JavaScript引擎中,以提高脚本的执行速度。JavaScript原本是一种解释型语言,代码在运行时逐行解析并执行,但JIT的引入使得部分代码在...

    Facebook开源的高效的PHP运行环境HHVM.zip

    HHVM即HipHop Virtual Machine,目前是3.0版本,出自Facebook,它先将PHP和Hack程序编译为中间字节码,然后通过just-in-time (JIT)编译器将字节码动态翻译为x64机器代码,应用上了非常多的编译优化技术。 JIT就是...

    精益生产之JIT管理实战

    精益生产是一种旨在消除浪费、提高效率的生产管理理念,它起源于日本丰田公司的JIT(Just In Time)生产方式。JIT的核心理念是按照实际需求,适时、适量地生产产品,以达到零库存、减少浪费的目标。传统的批量生产...

    JIT实现拓扑展现

    在IT行业中,"JIT实现拓扑展现"这个主题涉及到的是动态编译技术和网络拓扑图的可视化。这里,我们主要探讨JIT(Just-In-Time)编译器以及如何利用它来优化程序性能,同时也会关注如何通过编程手段将网络拓扑结构以...

    jvm初识及JIT优化

    jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识...

    浅析dalvik虚拟机JIT技术的实现.doc

    ### 浅析Dalvik虚拟机JIT技术的实现 #### 引言 随着移动设备的普及,Android系统作为全球最大的移动操作系统之一,其性能优化一直是开发者关注的重点。Dalvik虚拟机,作为Android早期的核心组件,引入了即时编译...

    JIT Spray技术.pdf

    ### JIT Spray技术详解 #### 摘要与背景 随着远程攻击变得越来越难以实施以及边界防御成为标准配置,客户端侧的远程攻击成为了攻击者的新选择。为了抑制客户端侧漏洞的爆发,现代Windows操作系统采用了诸如数据...

    Android Framework介绍 Dalvik原理 JIT介绍

    3. **JIT编译器**:为了进一步提高性能,Dalvik引入了即时编译器(Just-In-Time Compiler, JIT),可以在运行时将字节码编译成本地机器代码。 #### 三、Dalvik JIT编译器原理 在Android 2.2版本中引入了JIT编译器来...

    JIT生产方式简介

    JIT生产方式,全称为Just-In-Time,是一种源自日本丰田公司的生产管理理念,旨在通过消除浪费、降低库存和提高效率来实现生产系统的优化。这种生产方式在20世纪50年代由丰田公司的大野耐一开始研究并实施,后来在70...

    精益生产之JIT实务

    精益生产是一种旨在消除浪费、提高效率的生产管理系统,JIT(Just In Time)是精益生产的核心原则之一。JIT实务涉及到企业管理的多个方面,旨在通过最小化库存、优化流程和提高质量来降低成本并提升竞争力。 在JIT...

    深入理解.NET的JIT编译方式

    在JIT编译器生成本机代码 后,它会重写存根例程,插入一个jmp指令跳转到刚才JIT编译器的代码。只有当要调用某个方法时,JIT编译器才会将CIL的方法体编译为相应的本机机 器码版本。这样可以优化程序的工作集。

    JIT(Just In Time)采购知识-准时化采购

    JIT(Just In Time)采购,也称准时化采购,是一种源自日本丰田公司的管理理念,旨在通过精确控制供应流程,确保在正确的时间、正确的地点、提供正确数量和质量的物料,以满足生产需求,同时最大限度地减少库存和...

    matlab开发-效率Kneast使用jit搜索邻居

    在这个场景中,“matlab开发-效率Kneast使用jit搜索邻居”涉及到的是如何在MATLAB中优化KNN搜索过程,以提高计算效率。 KNN搜索通常包括两个主要步骤:距离计算和最近邻查找。在MATLAB中,这两个步骤都可能成为性能...

    java和JIT编译器版本.pdf

    Java编程语言以其跨平台特性及高性能的JIT(Just-In-Time)编译器而闻名。JIT编译器是Java虚拟机(JVM)的一部分,它能够在程序运行时将字节码转换为机器码,从而提高执行效率。了解JIT编译器的不同版本对于优化Java应用...

Global site tag (gtag.js) - Google Analytics