使用列表的低延迟

时间:2013-12-08 15:49:56

标签: java collections

有人可以帮助我理解我读到的与低延迟编程相关的以下陈述:

尽量减少您拥有的对象数量。例如,更喜欢基于数组的结构(如ArrayList / ArrayDeque)到基于指针的结构(如LinkedList)。

我知道arraylist可能在碎片堆中表现更好;但从未意识到它涉及更少的对象。
相反,我知道arraylist实际上需要创建比实际需要更多的对象。

1 个答案:

答案 0 :(得分:3)

LinkedList使用Node对象来包装您添加到其中的每个元素。因此,如果向LinkedList添加10个对象,实际上还需要另外10个对象来保存它们。

虽然ArrayList会根据添加和删除不时重新生成其支持数组,但它只需要一个支持数组对象来保存您添加到它的所有对象。

垃圾收集和对象创建并不总是可以忽略不计。