我遇到了一种情况,我想存储一个空间数据的内存缓存,它不是立即需要的,也不是从磁盘加载的,而是通过算法生成的。由于数据是在空间上访问的,因此将根据无关因素以及与最近读取操作位置的距离从缓存中删除数据。问题是Java 的垃圾收集似乎并没有很好地与这个系统集成。我想使用数据的空间知识使其能够被 JVM 垃圾收集。有没有办法将这些缓存对象标记为垃圾回收?如果 JVM 遇到内存不足异常,有没有办法捕获该异常并删除缓存对象以释放内存?
或者这是错误的做事方式?
我遇到了一种情况,我想存储一个空间数据的内存缓存,它不是立即需要的,也不是从磁盘加载的,而是通过算法生成的。由于数据是在空间上访问的,因此将根据无关因素以及与最近读取操作位置的距离从缓存中删除数据。问题是Java 的垃圾收集似乎并没有很好地与这个系统集成。我想使用数据的空间知识使其能够被 JVM 垃圾收集。有没有办法将这些缓存对象标记为垃圾回收?如果 JVM 遇到内存不足异常,有没有办法捕获该异常并删除缓存对象以释放内存?
或者这是错误的做事方式?