为什么 PHP 使用操作码缓存,而 Java 编译为字节码文件?
从我的角度来看,PHP和Java都有类似的结构。首先,编写一些高级代码,然后必须以更简单的代码格式转换这些代码,以便 VM 执行。一个区别是,PHP直接从源代码文件工作,而Java将字节码存储在.class文件中,VM可以从中加载它们。
如今,对快速执行PHP的要求越来越高,这导致人们相信最好直接使用操作码,而不是在每次用户点击文件时都经历编译步骤。
解决方案似乎是加载所谓的加速器,它们基本上将编译的结果存储在缓存中,然后使用缓存的操作码而不是再次编译。
Facebook完成的另一种方法是将PHP代码完全编译为其他语言。
所以我的问题是,为什么PHP世界中没有人做Java所做的事情?是否有一些动态元素确实需要每次都重新编译或类似的东西?否则,当代码投入生产时编译所有内容,然后使用它,这将是非常聪明的。