模式 | 验证条件 | 验证类型 | 动作 | 输出情况 | |
cli | 服务器负载1000 | apc | time php t2.php | 平均 user+sys = 0.3s | |
include | time php t.php | 平均 user+sys = 0.3s | |||
apache | 服务器负载16 | apc | 浏览器请求 | 266 ~ 601 ms | |
include | 浏览器请求 | 89 ~ 410ms 大部分情况120ms | |||
备注 | 也许APC会将操作码存储在内存中,但是当PHP脚本执行结束时,PHP可执行文件会死机,该内存将丢失:脚本执行之间不会持续存在。因此,APC中的操作码缓存在CLI模式下是无用的:它不会优化任何东西,因为每次PHP的可执行文件启动时,PHP仍然需要将源重新编译为操作码。 实际上,APC没有“优化”:执行PHP脚本的标准方式是这样的: 1:读取文件,并将其编译成操作码 2:执行操作码 什么APC做存储在操作码在内存中,所以PHP脚本的执行变成: 1:从内存中读取操作码(比编译源代码快得多) 2:执行操作码 但这意味着你必须在内存中存储一些操作码。当作为Apache模块运行PHP时,Apache负责该内存段的持久化。 当PHP从CLI运行时,没有内存段保留在那里,因此在PHP执行结束时被破坏。 | ||||
apc优化遇到的问题
最新推荐文章于 2024-04-25 10:10:41 发布