2017-08-02 49 views
3

我在Talend joblet中出現半緩存內存泄漏。我在一個joblet中間使用了一個tHashOutput/tHashInput對,因爲我需要找出流中有多少行。因此,我將它們推入tHashOutput並稍後從globalMap引用tHashOutput_1_NB_LINE。tHashOutput/tHashInput中的Talend內存泄漏

joblet flow

我有什麼,我認爲是正確的選擇:

  • allRows - 「追加」 是假
  • tHashinput_1 - 「清除看完之後」 是真

然而,當我運行一段時間並使用Eclipse內存分析器進行分析時,我發現隨着時間的推移,對象會不斷積累。這是我在12小時後得到:

memory usage

這種用法(64MB/12小時)不斷增加,無關什麼工作正在做(即主動地泵送的數據或只是空轉 - 這個代碼,而也被怠速調用)。如果我看在MAT的內存引用裏面,我可以看到,點我到這個地方的代碼串,像

tHashFile_DAAgentProductAccountCDC_delete_BPpuaT_jsonToDataPump_1_tHashOutput_2

(jsonToDataPump作爲joblet的名稱)。我在使用這些哈希組件時做錯了什麼?

回答

0

我相信你應該設置垃圾收集器的步伐到最短的時間,以便它將照顧未使用的對象在應用程序