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