首頁  >  文章  >  後端開發  >  PHP的Phar套件原來效能這麼強

PHP的Phar套件原來效能這麼強

藏色散人
藏色散人轉載
2019-11-21 14:33:492792瀏覽

之前有在群組裡看到人說,有些 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/PharTest

有興趣的朋友可以拉下來,自己跑一下試試看。

想要啟動Phar 檔案打包功能,首先要在php.ini 中設定phar.readonly = Off

Phar 打包程式碼主要如下:

<?php
$fileName = __DIR__ . &#39;/test/test.phar&#39;;
if(is_file($fileName))
{
    unlink($fileName);
}
$phar = new Phar($fileName);
$phar->stopBuffering();
$phar->buildFromDirectory(__DIR__ . &#39;/src&#39;);

實際應用程式複雜,可以參考php 官方文檔,依實際情況略作修改。

以上是PHP的Phar套件原來效能這麼強的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除