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