gpt4 book ai didi

java - GetFeatures Geotools后释放内存

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:20 24 4
gpt4 key购买 nike

我们使用以下代码创建了一个 GroupByVisitor:-

GroupByVisitor visitor = new GroupByVisitorBuilder().withAggregateAttribute(CQL.toExpression(strColumn))
.withAggregateVisitor("Count").withGroupByAttribute(CQL.toExpression(strColumn)).build();

此时使用的内存为 150-180Mb 。并在使用以下代码应用后:-

sfc.getFeatures().accepts(visitor, null);
visitor.getResult()

此时内存超过 1800Mb。但在此之后不会发布。获取到所有值后如何释放内存?

甚至 System.gc(); 也没有释放所有内存。

最佳答案

通过快速阅读 GroupByVisitor,结果类 GroupByResult 可能包含对 GroupByVisitor 成员的引用。

从代码的工作方式来看,只要您的代码持有对“getResult”返回的对象的引用,就会存在对访问者(及其数据结构)的引用。

如果您能够从返回的对象中复制数据,然后将结果和访问者引用的上下文传递出去,JVM 可能会收集内存。

关于java - GetFeatures Geotools后释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com