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