如題,在webman里,用 phpSpreadSheet 導出又臭又長的數(shù)據(jù)(業(yè)務(wù)需要....),其中,還需要遍歷數(shù)據(jù)進行處理(除了基本的數(shù)據(jù)外,還有幾個輔助的大數(shù)組)一個請求就基本漲7,80M的內(nèi)存,一個進程沒處理幾次請求就換新的進程了。(代碼里面沒有全局變量,沒有用到靜態(tài)數(shù)組之類的,處理的類都是通過new出來的,試過,unset掉內(nèi)存也沒太大變化)。請問下,這種情況應(yīng)該怎么排查,或者怎么釋放內(nèi)存。雖然workerman能夠自動產(chǎn)生新的進程,但是這樣進程生成地也太頻繁了。。。
代碼在內(nèi)網(wǎng),沒法貼代碼了。
http://m.wtbis.cn/doc/webman/others/memory-leak.html
按照手冊說法,php申請完的內(nèi)存不一定立刻歸還給操作系統(tǒng),會留著復(fù)用提高性能,試下請求完畢后調(diào)用 gc_mem_caches() 釋放內(nèi)存呢