因此,我的问题基本上是,是否有可能实现定制的jni,以便它能够立即从堆中移除对象,而不是等待垃圾收集器对其执行操作。
我的问题目标主要集中在使用创建大量对象来计算somthing的临时函数时消耗的内存上。
例如:我有这样一个函数:
public Integer[] countDuplicates(int[] values) {
Map<Integer, Integer> l = new HashMap<Integer, Integer>();
Integer c;
for (int v : values) {
c = l.get(v);
if (c == null) {
c = 0;
}
l.put(v, c + 1);
}
Integer[] result = l.values().toArray(new int[l.size()]);
// < A Way to free the Map from the heap>
return result;
}
如您所见,在方法结束后不需要Map,因此,我的问题是,有没有任何方法,或者使用jni,或者在gc上实现任何命令,或者甚至是一个口号,在方法运行后强制从堆中删除?
暂无答案!
目前还没有任何答案,快来回答吧!