2017-07-07 161 views
0

在做了一些研究之后,我正在努力寻找关于如何缓存PHP include()文件的明确答案。缓存了本地PHP include()文件吗?

我发现的最接近的是here,但它对我来说并不合理。

我有几种方法使用其他方法从不同的文件,我想避免将include()的只是在文件的顶部,但我不知道这可能会影响性能。

任何帮助表示赞赏。

回答

1

PHP是一种解释型语言。默认的PHP运行时将PHP源代码编译为一个名为PHP字节码的中间表示,然后执行该表示。字节码缓存将编译后的PHP源代码表示存储在共享内存中。这消除了在每个请求上加载和编译源代码的需求,从而导致性能显着提高(每秒请求数量多达70%)。

的基本理念,执行PHP脚本时有两个步骤:

  • 第一:PHP代码,写在纯文本,是编译为操作码
  • 然后:那些操作码执行。 当你有一个PHP脚本时,只要它没有被修改,操作码将永远是相同的;因此,每次脚本执行时都要进行编译阶段,这样会浪费CPU时间。

为了防止冗余编译,您可以使用一些操作码缓存机制。

将PHP脚本编译为操作码后,这些脚本将保存在RAM中,并在下次执行脚本时直接从内存中使用;防止编译一次又一次地完成。

更多

+0

感谢您的答复。这与'include()'特别有关。如果我在多个方法中包含()同一个文件,那么它只执行一次'include()',然后从那里提取已编译的代码? –

+0

字节码被缓存在内存中,但带有文件名的索引;您仍然需要'include'告诉PHP要包含哪些代码......然后它会查看该文件的字节码是否在操作码缓存中,或者是否必须从磁盘检索文件 –

+0

如果您正在编写OO代码,并且希望避免编写所有这些内容,然后PHP提供自动加载器 –