我在Talend joblet中出現半緩存內存泄漏。我在一個joblet中間使用了一個tHashOutput/tHashInput對,因爲我需要找出流中有多少行。因此,我將它們推入tHashOutput並稍後從globalMap引用tHashOutput_1_NB_LINE。tHashOutput/tHashInput中的Talend內存泄漏
我有什麼,我認爲是正確的選擇:
- allRows - 「追加」 是假
- tHashinput_1 - 「清除看完之後」 是真
然而,當我運行一段時間並使用Eclipse內存分析器進行分析時,我發現隨着時間的推移,對象會不斷積累。這是我在12小時後得到:
這種用法(64MB/12小時)不斷增加,無關什麼工作正在做(即主動地泵送的數據或只是空轉 - 這個代碼,而也被怠速調用)。如果我看在MAT的內存引用裏面,我可以看到,點我到這個地方的代碼串,像
tHashFile_DAAgentProductAccountCDC_delete_BPpuaT_jsonToDataPump_1_tHashOutput_2
(jsonToDataPump作爲joblet的名稱)。我在使用這些哈希組件時做錯了什麼?