摘要:想到還有包這個東西,我試圖用來解決這個問題。功夫不負(fù)有心人,我終于為框架實現(xiàn)了打包的兼容和支持,測試結(jié)果表明使用進(jìn)行文件枚舉讀取,無論是在本地硬盤還是等網(wǎng)絡(luò)文件共享掛載,性能都比零散的文件性能更強(qiáng)。
之前有在群里看到人說,有一些 Swoole 框架啟動速度慢,尤其是掛載的網(wǎng)絡(luò)硬盤下運(yùn)行尤其的慢。
我想,由于 Swoole 可以讓 PHP 應(yīng)用實現(xiàn)常駐內(nèi)存,所以啟動時候勢必要掃描和加載許多文件,這應(yīng)該是導(dǎo)致啟動速度慢的罪魁禍?zhǔn)住?/p>
想到 php 還有 phar 包這個東西,我試圖用 phar 來解決這個問題。功夫不負(fù)有心人,我終于為 imi框架 實現(xiàn)了 phar 打包的兼容和支持,測試結(jié)果表明:
使用 Phar 進(jìn)行文件枚舉、讀取、include,無論是在本地硬盤還是 Samba 等網(wǎng)絡(luò)文件共享掛載,性能都比零散的文件性能更強(qiáng)。
phar 作用強(qiáng)大,可以直接用一個包來部署項目,但在傳統(tǒng) php 應(yīng)用開發(fā)里 phar 其實并不受歡迎,因為沒有多少好處。而在Swoole環(huán)境下,越來越多的框架支持常駐內(nèi)存,可以在啟動時加載完想要用的文件。
phar 從 php 5.3.0 開始就已經(jīng)內(nèi)置支持,所以兼容性不需要擔(dān)心,也不需要安裝額外的擴(kuò)展。
我特意為此寫了一個測試 Phar 文件枚舉、讀取、include 性能的 Demo:https://gitee.com/yurunsoft/P...
有興趣的朋友可以拉下來,自己跑一下試試。
想要啟動 Phar 文件打包功能,首先要在 php.ini 中配置 phar.readonly = Off
Phar 打包代碼主要如下:
stopBuffering(); $phar->buildFromDirectory(__DIR__ . "/src");
實際應(yīng)用情況復(fù)雜,可以參考 php 官方文檔,根據(jù)實際情況略作修改。
原文地址:https://blog.yurunsoft.com/a/...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/29383.html
摘要:在我前一陣子寫的一篇文章新版重構(gòu)之系統(tǒng)架構(gòu)中,很多人對其中提到的利用上線代碼比較感興趣,我就在這邊跟大家分享下我目前的做法?,F(xiàn)有代碼需要做何處理嗎如果你的代碼結(jié)構(gòu)比較科學(xué)比如采用大部分框架的推薦結(jié)構(gòu),那么一行都不需要改變。 在我前一陣子寫的一篇文章《新版 SegmentFault 重構(gòu)之系統(tǒng)架構(gòu)》中,很多人對其中提到的利用phar上線代碼比較感興趣,我就在這邊跟大家分享下我目前的做法。...
摘要:寫在前面的話本文章緊接上一篇下編譯安裝。來完成常用的開發(fā)集成環(huán)境的基本搭建,本篇來記錄的安裝,還是那些步驟。 寫在前面的話 本文章緊接上一篇CentOS7.0下編譯安裝Nginx 1.10.0。來完成常用的web開發(fā)集成環(huán)境lnmp的基本搭建,本篇來記錄php的安裝,還是那些步驟。 安裝編譯工具、依賴包及下載源碼包 解壓編譯 安裝 啟動 編譯安裝 下載源碼 由于在上篇文章中編譯工具...
摘要:寫在前面的話本文章緊接上一篇下編譯安裝。來完成常用的開發(fā)集成環(huán)境的基本搭建,本篇來記錄的安裝,還是那些步驟。 寫在前面的話 本文章緊接上一篇CentOS7.0下編譯安裝Nginx 1.10.0。來完成常用的web開發(fā)集成環(huán)境lnmp的基本搭建,本篇來記錄php的安裝,還是那些步驟。 安裝編譯工具、依賴包及下載源碼包 解壓編譯 安裝 啟動 編譯安裝 下載源碼 由于在上篇文章中編譯工具...
閱讀 3292·2021-09-22 15:50
閱讀 3537·2021-09-10 10:51
閱讀 3289·2019-08-29 17:10
閱讀 3044·2019-08-26 12:14
閱讀 2008·2019-08-26 12:00
閱讀 1176·2019-08-26 11:44
閱讀 813·2019-08-26 11:44
閱讀 2928·2019-08-26 11:41