PHP 的 Phar 包原来性能这么强!
生活随笔
收集整理的這篇文章主要介紹了
PHP 的 Phar 包原来性能这么强!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前有在群里看到人說,有一些 Swoole 框架啟動速度慢,尤其是掛載的網絡硬盤下運行尤其的慢。
我想,由于 Swoole 可以讓 PHP 應用實現常駐內存,所以啟動時候勢必要掃描和加載許多文件,這應該是導致啟動速度慢的罪魁禍首。
想到 php 還有 phar 包這個東西,我試圖用 phar 來解決這個問題。功夫不負有心人,我終于為 imi框架 實現了 phar 打包的兼容和支持,測試結果表明:
使用 Phar 進行文件枚舉、讀取、include,無論是在本地硬盤還是 Samba 等網絡文件共享掛載,性能都比零散的文件性能更強。phar 作用強大,可以直接用一個包來部署項目,但在傳統 php 應用開發里 phar 其實并不受歡迎,因為沒有多少好處。而在Swoole環境下,越來越多的框架支持常駐內存,可以在啟動時加載完想要用的文件。
phar 從 php 5.3.0 開始就已經內置支持,所以兼容性不需要擔心,也不需要安裝額外的擴展。
我特意為此寫了一個測試 Phar 文件枚舉、讀取、include 性能的 Demo:https://gitee.com/yurunsoft/P...
有興趣的朋友可以拉下來,自己跑一下試試。
想要啟動 Phar 文件打包功能,首先要在 php.ini 中配置 phar.readonly = OffPhar 打包代碼主要如下:
<?php $fileName = __DIR__ . '/test/test.phar'; if(is_file($fileName)) {unlink($fileName); } $phar = new Phar($fileName); $phar->stopBuffering(); $phar->buildFromDirectory(__DIR__ . '/src');實際應用情況復雜,可以參考 php 官方文檔,根據實際情況略作修改。
原文地址:https://blog.yurunsoft.com/a/...
總結
以上是生活随笔為你收集整理的PHP 的 Phar 包原来性能这么强!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net core 微服务之API网关
- 下一篇: (第五篇)Linux操作系统基本结构介绍