我正在 JavaEE7/CDI 应用程序中使用 ChronicleMap。对话范围被大量使用。 很难预测用户将在哪里退出对话以关闭 map 。
虽然我试图关闭 @PreDestroy 方法中的所有实例,但显然我并没有关闭所有实例。
以下错误的后果是什么:
11:20:47,866 ERROR [net.openhft.chronicle.hash.impl.ChronicleHashResources] (Reference Handler) ChronicleMap{name=null, file=null, identityHashCode=1146047764} is not closed manually, cleaned up from Cleaner
不手动关闭 map 有什么坏处吗?
map 在从清理器中清理之前是否先关闭?
谢谢
最佳答案
不关闭编年史 map 的危害并不比e更大。 G。不手动取消直接 ByteBuffer 的映射。在某些不幸的情况下,它可能会导致 OutOfMemoryError,即使正式的实时工作对象集 + 实时堆外内存从未超过配置的限制。
关于java - ChronicleMap没有手动关闭,从Cleaner中清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46051776/