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

时间:2010-08-01 03:07:11

标签: java php virtual-machine

PHP是否有像Java这样的虚拟机?

3 个答案:

答案 0 :(得分:14)

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

与Java的不同之处在于,此编译代码通常不会存储到单独的文件中,并且每次执行时都会重新编译脚本(但请参阅操作码缓存)。

答案 1 :(得分:5)

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

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

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

答案 2 :(得分:0)

是的,但直到最近它才非常像JVM for Java。它是由facebook发明的,并在另一周(2013年7月)的OSCON大会上宣布。

可以阅读有关新PHP VM的新闻报道here,可以在github找到代码和更多信息。