代码之家  ›  专栏  ›  技术社区  ›  Christopher Altman

PHP有像Java那样的虚拟机吗?

  •  12
  • Christopher Altman  · 技术社区  · 15 年前

    PHP有像Java那样的虚拟机吗?

    3 回复  |  直到 12 年前
        1
  •  14
  •   Artefacto    15 年前

    对。

    独立于运行PHP的平台,脚本被编译成相同的字节码,并由Zend引擎运行。

    与Java的区别在于,编译后的代码通常不存储在单独的文件中,并且脚本在每次执行时都被重新编译(但是,见OpCache缓存)。

        2
  •  5
  •   Stephen C    15 年前

    Zend引擎和典型的JVM之间的另一个重要区别是它们执行字节码的方式:

    • Zend引擎直接执行(解释)编译的字节码。(至少我认为是这样。我无法从Zend在线文档中确认这一点!)
    • JVM通常使用JIT编译器将字节码编译为本机指令,然后执行本机指令。

    实际上,JVM行为比这更复杂。JVM并不总是编译为本机代码,当它们编译时,通常会延迟JIT编译,直到它们认为这是值得的。在此之前,它们直接执行字节码。

        3
  •  0
  •   Samuel Lampa    12 年前

    是的,但最近它非常像Java的JVM。它是Facebook发明的,前几周(2013年7月)在OSCON会议上宣布。

    可以读取有关新php vm的新闻报告 here ,可以在上找到代码和更多信息 github .

    推荐文章