我的信息:
PHP是一种使用解释器的编程语言。
解释器是源代码和机器之间的编译软件。
它在运行时读取和分析源代码,并根据源代码启动自己的子程序。
它没有将代码编译或转换为可以保存的新代码,因为它是一种执行代码。
Zend的Opcache能够存储预编译的字节码并再次使用它。 (我知道它一般如何运作。)
http://www.sitepoint.com/understanding-opcache/
我的问题:
当解释器没有编译时,Opcache从哪里获取预编译的脚本?
答案 0 :(得分:0)
它没有将代码编译或转换为可以保存的新代码,因为它是一种执行代码。
那是不对的。解释器所做的第一件事就是将PHP源代码编译成可执行的字节码格式,然后执行该格式。
它与.NET和Java没有什么不同,只是它们提前先发制人,而PHP则在脚本执行时按需执行。
像OPcache这样的东西采用这个字节码并缓存它,保存解释器不必每次执行脚本时都获取源代码并解析它。