[英]How access event listeners of an object instantiated on runtime in java swing
[英]How to Object pool for event Listeners in Java or JavaScript
我一直在阅读有关对象池如何减少游戏垃圾收集的文章,尤其是对于不断创建和销毁关键事件的事件侦听器。 他们提到对象池如何减少内存问题,但是代码中没有任何地方说明如何实际执行。
如何为JavaScript或Java中的事件提供对象池?
通常,对于对象池,您基本上需要维护自己的可用对象列表。 如果所有对象都是同一类型,则效果很好。 如果说您有一门Thing,您可能会有一个ThingPool
import java.util.ArrayDeque;
import java.util.Deque;
public class ThingPool {
public static class Thing {
}
// start with a big stack of objects
Deque<Thing> stack = new ArrayDeque<Thing>(1000);
/**
* Gets a new instance. If one exists in the stack use that,
* otherwise create a new one.
* @return
*/
public Thing getThing() {
if(stack.isEmpty())
return new Thing();
return stack.pop();
}
/**
* Does not actually delete it, just stores it for later use
* @param thing
*/
public void deleteThing(Thing thing) {
stack.push(thing);
}
/**
* You may need to clear your pool at some point
* if you have a great many objects in it
*/
public void clear() {
stack.clear();
}
}
当我用许多已知大小不同的矩阵做大量工作并且遇到堆碎片问题时,我在C中使用了此技术。
我没有在Java中使用它,因为Java具有比C更好的内存管理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.