Php OpCache-了解缓存是如何工作的,是每个用户还是每个资源?
我正在使用OpCache,因为它是PHP5.5.x附带的,我对它非常满意,但我想调整它的内存设置,这就是我理解的不足之处 当一个给定的用户请求一个给定的页面时,服务器响应这个请求,调用PHP解释器,解释器将操作码存储在缓存中,为内容提供服务,仅此而已。下一次请求进来时,如果请求的操作码相同,缓存就会启动,但我的问题是 缓存是基于每个用户工作的(缓存的操作码仅适用于此特定用户的请求),还是它们适用于使用这些缓存的操作码的任何请求 我想做的是调整OpCache以使用一定数量的内存,但我不知道内存池是基于每个用户工作的,还是像共享资源池一样工作的Php OpCache-了解缓存是如何工作的,是每个用户还是每个资源?,php,caching,opcache,Php,Caching,Opcache,我正在使用OpCache,因为它是PHP5.5.x附带的,我对它非常满意,但我想调整它的内存设置,这就是我理解的不足之处 当一个给定的用户请求一个给定的页面时,服务器响应这个请求,调用PHP解释器,解释器将操作码存储在缓存中,为内容提供服务,仅此而已。下一次请求进来时,如果请求的操作码相同,缓存就会启动,但我的问题是 缓存是基于每个用户工作的(缓存的操作码仅适用于此特定用户的请求),还是它们适用于使用这些缓存的操作码的任何请求 我想做的是调整OpCache以使用一定数量的内存,但我不知道内存池是
你能给我一个提示吗?关于操作码如何存储在缓存中以及如何从共享内存读取,你已经说对了。但是,它不是基于用户,而是基于脚本级别。每个已解析为操作码的和编译为操作码的php文件都将保存到共享内存中并从那里执行。对于缓存的每个脚本,解析和编译步骤(否则会很慢)将被短路 要回答您的问题,不,缓存不是基于每个用户,而是基于每个脚本。缓存的操作码仍然由脚本引擎(主要是Zend)根据每个请求执行 是的,它确实从共享内存中读取 参考文献
太棒了!就像我希望它表现的那样。现在我可以轻松地调整内存设置。非常感谢:)@Awemo我对共享内存感到困惑。你能告诉我什么是共享内存吗。硬盘还是RAM?@sandipshirsale它是服务器系统的RAM,请参见此。