【发布时间】:2015-02-17 21:10:52
【问题描述】:
我们在 Hazelcast 中创建了一个简单的队列:
HazelcastInstance h = Hazelcast.newHazelcastInstance(config);
BlockingQueue<String> queue = h.getQueue("my-distributed-queue");
假设 queue.size() == 0。
分布式队列“my-distributed-queue”是否使用任何内存资源?
背景:
我想使用 Hazelcast 创建大量 (>1k) 短期队列(用于保持项目组中的时间顺序)。我想知道如果 Hazelcast 中的 IQueue 对象被耗尽(大小==0)会发生什么。它会在内存中留下任何不会被 GC 清理的工件吗?
我分析了 VisualVM 中的堆转储,发现队列项存储为 IQueueItem 对象。当队列大小为 0 时,则没有 IQueueItem 实例。但是还有其他不可移动的人工制品吗?谢谢帮忙。
【问题讨论】: