PHP 包括文件系统的文件和性能影响


PHP included file and performance impact of filesystem

根据我的理解,当PHP遇到include(或require,或其_once版本)时,它会在文件系统中查找文件,并将其解析为代码代替include调用时的方式(文件中调用return除外)。

因此,在繁忙的服务器上,很容易想象许多人会反复点击包含的文件(例如,连接到数据库或定义全局函数的文件)。这会对性能产生明显影响吗?

通过将文件内容转储到相关位置来"编译"包含是否有利?

我对include(),require()等的理解是,它的工作方式很像C预处理器 #include 指令,并且基本上运行所有代码,就好像它内联在当前文件中的那个位置,正如你所相信的那样。

正如上面的一些评论所说,如果这些文件经常被使用(例如,通过include()不断调用),它们可能位于RAM或至少磁盘缓存中。

无论如何,PHP 文件本质上是 JIT 编译和缓存的,这毫无价值,因此您不应该注意到任何一种方式的性能下降。(更详细的信息在这里)。

此外,作为旁注 - 与 include() 和 require() 相比,include_once() 和 require_once() 确实有很大的开销,所以如果速度是一个因素,请尽量避免使用这些调用。