首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP如何管理加载到内存中的函数?

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

Stack Overflow用户
提问于 2017-12-30 21:55:02
回答 2查看 221关注 0票数 2

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

当我跑步的时候,我的记忆发生了什么:

代码语言:javascript
复制
php artisan serve

我的整个Laravel项目都被载入内存了吗?

如果是的话,作为一个开发人员,我是否有责任处理加载常用的函数/方法?而且,我如何决定将其存储在何处或基于哪些原则?(注:你不必向我解释这一切,只要把我转到手册上就行了)

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-30 22:01:47

不,不是全部都装进记忆里了!这是因为Laravel (像很多PHP库和框架一样)使用Autoloader,它只加载处理请求所需的内容,并且只在需要时加载。

但是,如果您正在使用opcache,它将将字节码加载到opcache中,并且一直保存在opcache中,直到清除为止。

票数 7
EN

Stack Overflow用户

发布于 2017-12-30 22:06:01

PHP是一个单程解释器,这意味着从文件顶部开始读取源代码,光标将解析文本向前移动到字节代码中。

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

生成的字节码通常存储在opcache中,这样就不会再次解释PHP文件。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48038207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档