因?yàn)楣疽_發(fā)一個(gè)高并發(fā)的接口,為了節(jié)省服務(wù)器資源,所以對(duì)一些常見的框架進(jìn)行調(diào)研,判斷哪一款性能符合要求
前期準(zhǔn)備
安裝壓力測(cè)試工具(我用的是ab)
ab全稱為:apache bench
在官網(wǎng)上的解釋如下:(推薦學(xué)習(xí):PHP編程從入門到精通)
AB是Apache的超文本傳輸協(xié)議(HTTP)的性能測(cè)試工具。其設(shè)計(jì)意圖是描繪當(dāng)前所安裝的的Apache的執(zhí)行性能,主要是顯示你安裝的Apache的每秒可以處理多少個(gè)請(qǐng)求。
安裝框架
我這里安裝了yii2、ci、lumen5.0、tp5、biny框架
進(jìn)行測(cè)試
將每個(gè)框架都鏈接本地?cái)?shù)據(jù)庫(kù),打開緩存,進(jìn)行兩輪測(cè)試,分別為純html頁面和數(shù)據(jù)庫(kù)運(yùn)算頁面
壓測(cè)量為并發(fā)數(shù)20,總量300
測(cè)試結(jié)果
數(shù)據(jù)庫(kù)運(yùn)維壓測(cè)結(jié)果如下:
純html界面壓測(cè)結(jié)果如下:
結(jié)果分析
原生腳本的抗壓能力最強(qiáng),但是開發(fā)效率低下,后期維護(hù)成本高,而且,這里只是簡(jiǎn)單的測(cè)試了一下數(shù)據(jù)庫(kù)運(yùn)算,具體項(xiàng)目的差距可能并沒有這么大
ci和biny的并發(fā)效果是最好的,但是ci版本已經(jīng)很老了,更新可能是個(gè)問題,而biny是騰訊最近開源的框架,在某些地方還存在缺陷,而且,文檔也不夠友好,目前只有框架中內(nèi)嵌了官方文檔,沒有手冊(cè),且閱讀性很差
tp5的效率雖然比不上上述三種框架,但是性能也還可以,對(duì)php7支持很好,問題是框架目錄混亂,不利于大型項(xiàng)目開發(fā)
lumen和yii2的并發(fā)支持都不是很好,但是這兩個(gè)框架本身功能非常強(qiáng)大,其中yii2對(duì)restful接口支持更友好,如果不差錢,還是建議用yii2進(jìn)行restful接口規(guī)范進(jìn)行開發(fā)