2017-08-02 19 views
3

私はTalendジョブレットで半低速メモリリークを起こしています。フロー内の行の数を調べる必要があるので、私はtHashOutput/tHashInputペアを使用しています。したがって、それらをtHashOutputにプッシュし、後でglobalMapからtHashOutput_1_NB_LINEを参照します。tHashOutput/tHashInputのTalendメモリリーク

joblet flow

私は、適切なオプションだと思うものを持っている:

  • ALLROWS - "追加" FALSE
  • tHashinput_1される - "読んだ後のクリアは" TRUE

ですしかし、これを一定期間実行し、Eclipse Memory Analyzerを使用して分析すると、時間の経過とともにオブジェクトが増えていきます。

memory usage

この用法(64メガバイト/ 12時間)着実に増加し、ジョブが(つまりが積極的にデータを送り込むか、単にアイドリングやっていることとは無関係である - と、このコードの中に:これは私が12時間後に得るものですアイドリングのためにも呼び出されます)。私は、MAT内のメモリ参照の内側に見れば、私は

tHashFile_DAAgentProductAccountCDC_delete_BPpuaT_jsonToDataPump_1_tHashOutput_2

(jsonToDataPumpがjobletの名前である)のように、コード内でこの場所に私を指す文字列を見ることができます。これらのハッシュコンポーネントを使用する際に何か問題がありますか?

答えて

0

ガベージコレクタペースを最小時間に設定して、アプリケーション内の未使用オブジェクトを処理するようにしてください。