PHP如何管理加载到内存中的函数?

PHP如何管理加载到内存中的函数?,php,laravel,Php,Laravel,我最近正在使用Laravel框架开发一个PHP项目。我想知道PHP中未使用的函数/方法是否会加载到内存中?。我读到解释语言的一个优点是它们有自动内存管理。然而,这并没有回答我关于它们是否已加载的问题。这种自动内存管理能处理上述情况吗 当我跑步时,我的记忆会发生什么变化: php artisan serve 我的整个Laravel项目都被载入内存了吗 如果是,作为开发人员,我是否有责任处理加载常用函数/方法;我如何决定将其存储在何处或基于哪些原则?(注意:您不必向我解释所有内容,只需将我重定向到

我最近正在使用Laravel框架开发一个PHP项目。我想知道PHP中未使用的函数/方法是否会加载到内存中?。我读到解释语言的一个优点是它们有自动内存管理。然而,这并没有回答我关于它们是否已加载的问题。这种自动内存管理能处理上述情况吗

当我跑步时,我的记忆会发生什么变化:

php artisan serve
我的整个Laravel项目都被载入内存了吗

如果是,作为开发人员,我是否有责任处理加载常用函数/方法;我如何决定将其存储在何处或基于哪些原则?(注意:您不必向我解释所有内容,只需将我重定向到手册)


如果否,它在哪里存储其方法或功能(即缓存、交换到硬盘)?此外,它们是作为普通代码存储还是已被解释以供进一步使用?

不,它不是全部加载到内存中!这是因为Laravel(像许多PHP库和框架一样)使用自动加载程序,只在需要时加载处理请求所需的内容


但是,如果您使用的是opcache,它将把字节码加载到opcache中,并将保留在opcache中,直到清除为止。PHP是一个单通道解释器,这意味着从文件顶部开始读取源代码,光标向前移动,将文本解析为字节码

当运行的游标解释包含或触发类加载器时,会根据需要加载其他PHP源代码

生成的字节码通常存储在opcache中,因此不会再次解释PHP文件

当您更改PHP文件时,web服务器必须告诉opcache内容已更改,并且需要再次解释该文件。您可以将生产服务器配置为不执行此检查,以提高性能。如果您有足够大的opcache,那么整个PHP应用程序(超时)将加载到内存中