• HipHop的原理


    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。

  • 相关阅读:
    使用video.js支持flv格式
    微信小程序开发(一)
    python advanced programming ( II )
    python advanced programming ( I )
    HTML/CSS
    info AI drive
    python基础回顾
    计算机组成原理2
    6.00.1x Introduction to computation
    有一种感动叫ACM(记陈立杰在成都赛区开幕式上的讲话)
  • 原文地址:https://www.cnblogs.com/huangye-dream/p/3756483.html
Copyright © 2020-2023  润新知