如何确认PrestaShop网站的OpCache已缓存PHP脚本?
关于PrestaShop中OpCache的验证与性能对比方案
一、查看已缓存的PHP文件及缓存位置
1. 获取缓存文件列表
用PHP内置的opcache_get_status()函数可直接获取所有被缓存的脚本信息。创建一个临时PHP文件(比如opcache_check.php),写入以下代码:
<?php $cacheStatus = opcache_get_status(); echo "<pre>"; print_r($cacheStatus['scripts']); echo "</pre>"; ?>
访问该文件就能看到所有被OpCache缓存的PHP文件路径、缓存键、占用空间等详细数据。
2. 确认缓存存储位置
OpCache默认将缓存存在内存中,不会写入磁盘(除非配置了opcache.file_cache参数)。通过以下代码可查看该配置项:
<?php $opcacheConfig = opcache_get_configuration(); echo $opcacheConfig['directives']['opcache.file_cache']; ?>
如果返回空值,说明缓存仅在内存中,重启PHP服务后缓存会被清空。
二、对比OpCache开启/关闭的网站影响
1. 性能压测对比
- 使用
ab(Apache Bench)或wrk这类压测工具,分别在OpCache开启、关闭状态下测试网站的核心指标:
示例ab命令:
重点对比两次测试的ab -n 1000 -c 10 https://你的PrestaShop域名/Requests per second(每秒请求数)、Time per request(单请求耗时),OpCache开启后性能会有明显提升。 - 浏览器端测速:用开发者工具的Network面板,对比两种状态下的页面首屏加载时间、PHP接口响应耗时。
2. 页面加载细节验证
- OpCache开启时,首次访问页面会编译脚本并缓存,二次及后续访问的响应时间会大幅缩短;关闭OpCache则每次访问都要重新编译脚本,多次访问的耗时波动小但整体偏慢。
- 若开启了PHP编译日志,关闭OpCache时每次请求都会生成编译相关日志,开启后仅首次请求会有。
三、额外验证技巧
- 修改一个PHP脚本(比如主题文件),若
opcache.validate_timestamps为On,等待opcache.revalidate_freq配置的时间后刷新页面,能看到修改内容;若为Off,需手动执行opcache_reset()或重启PHP才能更新缓存。 - 查看
opcache_get_status()返回结果中的hits(缓存命中数)和misses(缓存未命中数),请求页面后hits增长则说明缓存生效。
内容的提问来源于stack exchange,提问作者ailauli69
相关产品推荐
相关产品推荐

