我一直調(diào)試了。應(yīng)該是業(yè)務(wù)邏輯導(dǎo)致的內(nèi)存溢出。
workerman本身非常穩(wěn)定,沒用內(nèi)存泄漏。目前總結(jié)內(nèi)存占用越來越高一般是以下原因?qū)е碌摹?br />
1、業(yè)務(wù)代碼問題,比如使用了全局變量數(shù)組或者類的某個(gè)屬性是數(shù)組,數(shù)組中的元素個(gè)數(shù)一直在增加,導(dǎo)致內(nèi)存占用越來越大
2、使用了某些質(zhì)量有問題的php類庫(kù),類庫(kù)里面同樣因?yàn)?的問題導(dǎo)致內(nèi)存不斷增長(zhǎng)
3、某個(gè)擴(kuò)展bug導(dǎo)致。有些擴(kuò)展在使用過程中內(nèi)存會(huì)不斷增大。(這種情況比較少見)
$gatewayClients, $clientGateway, $uidConnections ,
因?yàn)槲翼?xiàng)目邏輯是游戲。所以很復(fù)雜 沒法停機(jī)調(diào)試。所以提問一下有沒有辦法不停服務(wù)的清空下 打印這3個(gè)參數(shù)查看內(nèi)容.
看下報(bào)錯(cuò)日志里有沒有內(nèi)存相關(guān)的報(bào)錯(cuò),然后看下是哪一行代碼報(bào)錯(cuò),有可能就是那里有內(nèi)存泄漏。
另外90多M也有可能業(yè)務(wù)確實(shí)需要這么多內(nèi)存,不一定是內(nèi)存泄漏。內(nèi)存泄漏是內(nèi)存無限增長(zhǎng),幾百M(fèi)上G這種。如果你的不是無限增長(zhǎng)應(yīng)該就沒事。