1.如題
2.假如把其他mvc框架(laravel、yii2等)用webman的寫(xiě)法整合到workerman里邊,是不是有一些東西無(wú)法常駐內(nèi)存。并且,因?yàn)榻M件多會(huì)導(dǎo)致性能不如webman好?
1、webman性能高主要是由于常駐內(nèi)存。
在webman里很多初始化在進(jìn)程啟動(dòng)的時(shí)候就完成了,然后便常駐內(nèi)存復(fù)用。
傳統(tǒng)框架做不到這點(diǎn),比如傳統(tǒng)框架一個(gè)請(qǐng)求到來(lái)要從磁盤(pán)加載N多php文件并解析(開(kāi)啟opcache雖然可以節(jié)省磁盤(pán)開(kāi)銷,但仍然有讀共享內(nèi)存開(kāi)銷、實(shí)例化各種類的開(kāi)銷),然后實(shí)例化各種類,包括框架相關(guān)的類、控制器、路由、中間鍵、連數(shù)據(jù)庫(kù)redis、執(zhí)行業(yè)務(wù)代碼,斷開(kāi)數(shù)據(jù)庫(kù)redis,銷毀前面初始化的所有東西。
而webman一個(gè)請(qǐng)求到來(lái)直接就執(zhí)行業(yè)務(wù)代碼,沒(méi)有其它消耗。因?yàn)槠渌脑谶M(jìn)程啟動(dòng)的時(shí)候就完成了。所以webman要比傳統(tǒng)框架快幾倍到幾十倍。
2、用workerman改寫(xiě)都可以做到常駐內(nèi)存。組件都是按需加載的,比如有1萬(wàn)個(gè)組件,但是請(qǐng)求只用了其中一個(gè),和有2個(gè)組件,請(qǐng)求中只用了一個(gè),性能沒(méi)有區(qū)別。