我的hazelcast
版本是3.4.1。
我通过Locks and Maps
使用hazelcast
。我发现hazelcast
服务器上的堆内存不断增加。我创建的所有Locks and Maps
都被方法{{1}销毁但是,即使通过FGC,垃圾收集器也无法销毁内存。因此,当我的程序运行一段时间后,destroy()
服务器将关闭。
为什么呢?
我的代码如下所示:
hazelcast
我抛弃了堆,发现 ILock lock=hazelcastInstance.getLock("host"+hostId);
lock.lock();
try { //do host businesses }
finally{ lock.unlock(); lock.destroy(); }
已被销毁。但是,与Locks and Maps
相关的许多其他对象都没有被销毁。所以我创建的Locks and Maps
越新,堆越快越快。
当我销毁Locks and Maps
时,堆中仍然存在一种对象相关性:
1。Locks and Maps
在LockServiceImpl中的evictionProcessors
2. LockStoreContainer中的ConcurrentMap<ObjectNamespace, EntryTaskScheduler>
lockStores
3. LocalMapStatsProvider中的ConcurrentMap<ObjectNamespace, LockStoreImpl>
statsMap
这是ConcurrentMap<String, LocalMapStatsImpl>
的错误吗?或hazelcast
不支持不断创建新hazelcast
并销毁它们的场景?