WEB开发网
开发学院WEB开发PHP Facebook揭秘HipHop项目 PHP程序大提速 阅读

Facebook揭秘HipHop项目 PHP程序大提速

 2010-02-03 21:29:23 来源:WEB开发网   
核心提示:PHP使我们常用的一种脚本语言,其最大的特点就是编程效率高,能够支持产品的快速迭代,可与其他传统的编译语言相比,CPU和内存使用效率不高,但Facebook的HipHop项目的完成,预示着PHP语言将更加优化。这个项目由一个PHP到C++的转换程序,一个重新实现的PHP运行库,和许多常用PHP扩展的重写版本构成,目的是
网站的可伸缩性。

  HipHop的原理

HipHop将PHP代码转换为高度优化的C++代码,然后再用g++编译器编译。它可以保持语义等效地执行源代码,但为了提高性能,牺牲了一些很少用到的特性,比如eval()。

HipHop开发中的主要困难在于,在PHP和C++这两种很不一样的语言之间怎么实现转换。虽然PHP也可以写一些很巧妙的动态特性,但是大多数PHP代码还是非常简单的。if (...) {...} else {..} 比foo($x) { include $x; } 肯定更常见。这为性能提高提供了机会。HipHop生成的代码尽可能地使用函数和变量的静态绑定。同时,还使用类型推演来选出变量最可能对应的某个类型,从而节省内存。转换过程分三步:

1. 静态分析。收集声明关系和依赖关系等信息。

2. 类型推演。选择最合适的类型,是C++的标量?还是String, Array, classes, Object或者Variant。

3. 代码生成。大部分直接将PHP语句和表达式对应为C++的语句和表达式。

在开发过程中,还有一个副产品:HPHPi,是一个实验性的解释器。通过它,不编译PHP源代码也可以运行。它已经用于HipHop自身的调试中。HipHop在保持了PHP优点的同时,也兼得了C++的性能优势。项目总共有30万行代码,5000多个单元测试。所有这些都将以PHP开源许可证形式发布到GitHub。

上一页  1 2 3 

Tags:Facebook HipHop

编辑录入:coldstar [复制链接] [打 印]
赞助商链接