关于OPcache对Swoole影响的理解
OPcache
OPcache是通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能- 通过
opcache_get_status(true)可获取已被编译的文件 - 当代码中执行
include或require时,此时并未重新编译php文件,而是读取的OPcache缓存.
Swoole
Swoole应用在执行start()后会将基础扩展存储在共享内存中Swoole应用在第一次include或require其他扩展后,会将其编译后保存在内存中
结论
- 开启
OPcache会提高Swoole初次开启速度以及重启速度 - 开启
OPcache会提高Swoole初次加载其他扩展
个人见解,如有不准确请斧正,谢谢
www.php.net/manual/zh/book.opcache...
https://wiki.swoole.com/#/question/swoole?id=swoole-%e9%a1%b9%e7%9b%ae%e8%b5%b7%e6%ba%90%e5%92%8c%e5%90%8d%e5%ad%97%e7%94%b1%e6%9d%a5
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
学习了
用swoft测试发现在开启opcache.enable的情况下查看php.ini没有查看到opcache的相关信息,我想swoole应该不会和opcache结合使用,因为:
1、swoole本身就是常驻内存的,没有必要再用opcache;
2、就单纯的php环境而言,开启opcache的情况下,第一次访问也不会用到opcache,第一次访问后才会生成缓存,所以怎么会有“开启 OPcache 会提高 Swoole 初次开启速度以及重启速度 / 开启 OPcache 会提高 Swoole 初次加载其他扩展”的说法呢?也没有先开启php再开启swoole的说法,因为swoole仅仅是php的扩展而已,开启php服务就开启了swoole
opcache和swoole的压测情况应该接近才对,因为fpm和nginx也采用了epoll模型,同等情况下,opacache相较于swoole只是增加了fpm和nginx的进程通信开销,参考 www.cnblogs.com/phpyu/p/13712673.h... 的压测情况,应该到不了10倍这么大的差距。。