Enc*_*dia 2 java garbage-collection
我正在用Java阅读垃圾收集,遇到了游荡对象。
这些对象已分配内存,但未使用,也未进行垃圾回收。这些使JVM堆的大小不断增加并表示内存泄漏,这可能导致内存不足错误或垃圾收集器上的过多开销。
任何人都可以提供这些游荡对象的代码示例。
public class Cache {
private static Map<String, Integer> cache = new HashMap<>();
public static Integer compute(String s) {
if (cache.containsKey(s) {
return cache.get(s);
}
else {
Integer result = performComputation(s);
cache.put(s, result);
return result;
}
}
private static Integer performComputation(String s) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
上面的方法试图通过使用计算值的缓存来加快重复值的计算来变得聪明。但是由于永远不会删除旧条目,因此缓存会不断增长,直到没有可用的内存为止。
| 归档时间: |
|
| 查看次数: |
1705 次 |
| 最近记录: |