摘要:
在最近一個項目中,在項目發(fā)布之后,發(fā)現(xiàn)系統(tǒng)中有內(nèi)存泄漏問題。表象是堆內(nèi)存隨著系統(tǒng)的運行時間緩慢增長,一直沒有辦法通過gc來回收,最終于導致堆內(nèi)存耗盡,內(nèi)存溢出。開始是懷疑ThreadLocal的問題,因為在項目中,大量使用了線程的ThreadLocal保存線程上下文信息,在正常情況下,在線程開始的時候設置線程變量,在線程結束的時候,需要清除線程上下文信息,如果線程變量沒有清除,會導致線程中保存的對象無法釋放。從這個正常的情況來看,假設沒有清除線程上下文變量,那么在線程結束的時候(線程銷毀),線程上下文變量所占用的內(nèi)存會隨著線程的銷毀而被回收。至少從程序設計者角度來看,應該如此。實際情況下是怎么 閱讀全文
posted @ 2013-06-22 23:22
貓叔玩流量
閱讀(6685)
評論(3)
推薦(1)
浙公網(wǎng)安備 33010602011771號