解析LUA與PHP在WEB應(yīng)用的性能對(duì)比
解析LUA與PHP在WEB應(yīng)用的性能對(duì)比是本文要介紹的內(nèi)容,這幾天用在WEB開(kāi)發(fā)的LUA框架已經(jīng)完成,框架中已包括數(shù)據(jù)庫(kù)操作和模板操作的功能,能夠很簡(jiǎn)單方便的應(yīng)用在WEB開(kāi)發(fā)上。在此時(shí)我對(duì)這個(gè)LUA框架和PHP開(kāi)發(fā)的WEB應(yīng)用分別進(jìn)行充分的壓力測(cè)試
服務(wù)器配置:WEB服務(wù)器一臺(tái),壓力測(cè)試服務(wù)器一臺(tái),均為雙核+4G內(nèi)存,CentOS 64位操作系統(tǒng)
網(wǎng)絡(luò)環(huán)境:局域網(wǎng)
軟件環(huán)境:yo2lua (50線程),Nginx+PHP-FPM (50進(jìn)程)
應(yīng)用程序均為連接MySQL數(shù)據(jù)庫(kù)查詢1行數(shù)據(jù)并輸出(表中就只有一行數(shù)據(jù))
壓力測(cè)試軟件:httperf+autobench
操作命令行:
- autobench
- --host1=192.168.200.251
- --port1=8001
- --host2=v2.54xing.com
- --port2=80
- --uri1=/
- --uri2=/a.php
- --quiet
- --low_rate=500
- --high_rate=5000
- --rate_step=100
- --num_call=1
- --num_conn=10000
- --timeout=10
- --file /tmp/result.tsv
從500并發(fā)起步,直到5000個(gè)并發(fā),每次測(cè)試以10000個(gè)連接為基準(zhǔn)取得平均值,如圖:
從測(cè)試結(jié)果中分析得出,PHP在并發(fā)數(shù)達(dá)到800的時(shí)候,性能出現(xiàn)嚴(yán)重的下降并且不穩(wěn)定。而LUA則一直達(dá)到3200個(gè)并發(fā)時(shí)出現(xiàn)一次突發(fā)的性能下降,上升到3800個(gè)并發(fā)后性能下降一半并且不穩(wěn)定,但依然能維持在2000個(gè)并發(fā)以上。
這份簡(jiǎn)單的測(cè)試告訴我,LUA在WEB應(yīng)用上,性能可以是PHP的4倍以上,并且LUA在3000個(gè)并發(fā)時(shí),占用的服務(wù)器資源非常少,遠(yuǎn)比PHP要低得多。
這個(gè)LUA的WEB開(kāi)發(fā)框架定位就是簡(jiǎn)單、高性能,也許一些復(fù)雜的功能無(wú)法實(shí)現(xiàn),我認(rèn)為這部分功能可以轉(zhuǎn)到PHP類的語(yǔ)言進(jìn)行開(kāi)發(fā)就可以,不必要把這個(gè)開(kāi)發(fā)框架變得復(fù)雜龐大起來(lái),不然就背離原來(lái)簡(jiǎn)單、高效的宗旨了
LUA跟C的無(wú)縫對(duì)接,徹底征服俺了 _-!! ~ 剛用一臺(tái)四核8G內(nèi)存的WEB服務(wù)器跑個(gè)壓力測(cè)試,穩(wěn)定達(dá)到4500個(gè)并發(fā)/秒。
小結(jié):解析LUA與PHP在WEB應(yīng)用的性能對(duì)比的內(nèi)容介紹完了,希望人、通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!