之前在群里看到有人说有些Swoole框架启动慢,尤其是在挂载的网络硬盘下运行。我觉得由于Swoole可以让PHP应用常驻内存,所以启动时需要扫描加载很多文件,这应该是启动速度慢的罪魁祸首。想到php和phar包,就尝试用phar来解决这个问题。付出就有收获。终于体会到了imi框架对phar打包的兼容和支持。测试结果表明:使用Phar进行文件枚举、读取和包含,无论是挂载到本地硬盘还是Samba等网络文件共享,性能均优于碎片文件。phar功能强大,可以直接用一个package来部署项目,但是phar在传统的php应用开发中其实并不流行,因为好处不多。在Swoole环境中,越来越多的框架支持常驻内存,可以在启动时加载你要使用的文件。phar从php5.3.0开始就内置了支持,所以你不用担心兼容性问题,也不需要安装额外的扩展。为此,我写了一个Demo来测试Phar文件枚举、读取、include的性能:https://gitee.com/yurunsoft/P...有兴趣的朋友可以拉下来自己试试。要启动Phar文件打包功能,首先在php.ini中配置phar.readonly=OffPhar打包代码如下:stopBuffering();$phar->buildFromDirectory(__DIR__.'/源');实际应用比较复杂,可以参考官方的php文档,根据实际情况稍作修改。原文地址:https://blog.yurunsoft.com/a/...
