我在塔伦德的工作岗位上有个半慢的记忆泄漏。我在作业中间使用tHashOutput/tHashInput对,因为我需要了解流中有多少行。因此,我将它们推入到tHashOutput中,并在以后从globalMap中引用tHashOutput_1_NB_LINE。

我有我认为正确的选择:
然而,当我运行了一段时间,并使用Eclipse内存分析器进行分析时,我看到随着时间的推移,对象会逐渐增多。这是我12个小时后得到的:

这一使用量(64 is /12小时)稳步增加,并且与工作所做的工作无关(例如,积极地抽运数据或只是空转--同时调用此代码也是为了空转)。如果我在MAT中查看内存引用,我可以在代码中看到指向这个位置的字符串,如
tHashFile_DAAgentProductAccountCDC_delete_BPpuaT_jsonToDataPump_1_tHashOutput_2
(jsonToDataPump是职务的名称)。我在使用这些散列组件时做错了什么吗?
发布于 2017-08-03 13:06:37
我相信您应该将垃圾收集器的速度设置为最短时间,以便它能够处理应用程序中未使用的对象。
https://stackoverflow.com/questions/45466264
复制相似问题