内存泄漏使用InternalSearchHit.sourceAsMap

时间:2016-01-20 14:55:30

标签: elasticsearch groovy memory-leaks garbage-collection

我在目前正在处理的项目中遇到了奇怪的行为。我所看到的是,当我直接引用InternalSearchHit.sourceAsMap时,我遇到了内存泄漏。代码正在进行一些图遍历,因此也有对其他InternalSearchHit.sourceAsMap文档的引用。

我目前正在编写groovy代码,所以我所看到的部分内容是:

def docMap = hit.sourceAsMap() 
//Add data into hash map
//Add other InternalSearchHit.sourceAsMap as child of map

我最终导致内存泄漏。

如果我使用HashMap构造函数复制地图:

def docMap = new HashMap(hit.sourceAsMap())
//Add data into hash map
//Add other InternalSearchHit.sourceAsMap as child of map

然后内存泄漏就消失了。

我看了一下InternalSearchHit的来源,我没有看到任何明显的东西。我最多可以猜到的是,引用sourceAsMap对象会保留对SearchHit的保留,而后者又会保留其他内容。

0 个答案:

没有答案