gpt4 book ai didi

php - 为什么 PHP 使用操作码缓存而 Java 编译为字节码文件?

转载 作者:IT王子 更新时间:2023-10-29 00:59:07 26 4
gpt4 key购买 nike

在我看来,PHP 和 Java 都具有相似的结构。首先,您编写一些高级代码,然后必须将其转换为更简单的代码格式,以便由 VM 执行。一个区别是,PHP 直接从源代码文件工作,而 Java 将字节码存储在 .class 文件中,VM 可以从中加载它们。

现在对快速执行 PHP 的要求越来越高,这让人们相信直接使用操作码会更好,而不是在用户每次点击文件时都经过编译步骤。

解决方案似乎是a load of so called Accelerators ,它基本上将编译结果存储在缓存中,然后使用缓存的操作码而不是再次编译。

另一种由 Facebook 完成的方法是 completely compile the PHP编码为不同的语言。

所以我的问题是,为什么 PHP 世界中没有人做 Java 所做的事情?是否有一些动态元素真的需要每次都重新编译或类似的东西?否则,当代码投入生产时编译所有内容然后使用它会更聪明。

最佳答案

最重要的区别是 JVM 有一个明确的规范,完全涵盖了字节码。这使得字节码文件具有可移植性和有用性,而不仅仅是由特定的 JVM 实现执行。

PHP 甚至没有语言规范。 PHP 操作码是特定 PHP 引擎的实现细节,因此您不能真正用它们做任何有趣的事情,并且使它们更加可见也没有什么意义。

关于php - 为什么 PHP 使用操作码缓存而 Java 编译为字节码文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10716676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com