我刚看过这个:
http://www.artima.com/lejava/articles/azul_pauseless_gc.html
虽然我对编译器有一些经验,但我没有做任何与垃圾收集有关的事情; 对我来说是一个很大的黑盒子.
我一直在努力理解文章中提到的问题.我理解这个问题(执行大多数垃圾收集器时有一个暂停),我知道他们声称他们的实现没有那个问题.但我不明白为什么/如何在第一时间发生问题(似乎在原始文本中可以理解这一点),因此我不明白为什么他们的解决方案可能会起作用.
有人可以向我解释一下:
当以图形方式解释时,我倾向于更好地理解这种事情 - 可能用代码编辑器完成的小内存模式就足够了.
谢谢!
因为Javolution不起作用(见这里),我非常需要一个高效的Java Map实现,并且在简单的使用下不会产生垃圾.java.util.Map在添加和删除密钥时会产生垃圾.我检查了Trove和Guava,但它看起来没有Set <E>实现.我在哪里可以找到一个简单而有效的替代方案java.util.Map?
编辑EJP:
添加条目时会分配一个条目对象,并在删除它时将其释放到GC.:(
void addEntry(int hash, K key, V value, int bucketIndex) {
Entry<K,V> e = table[bucketIndex];
table[bucketIndex] = new Entry<K,V>(hash, key, value, e);
if (size++ >= threshold)
resize(2 * table.length);
}
Run Code Online (Sandbox Code Playgroud)