两个VTDNav实例的Object.equals和VTDNav.cloneNav的开销

时间:2016-02-04 08:11:31

标签: xml vtd-xml

我正在尝试为vtd-xml实现一个简单的包装器。由于这个包装器允许随机访问,我选择使用VTDNav.cloneNav来允许包装器同时保持和遍历游标到XML的不同部分。我的问题是:

  1. 我知道克隆VTDNav实例会有性能损失,但一般来说,我们在这里讨论了多少?一旦我完成了包装,我可能会做一些基准测试,但也许一些有关成本的信息可能会让我改变一些设计决策(可能只使用一个VTDNav并仅在请求时克隆)。
  2. 如何比较两个克隆的VTDNav实例,看看它们是否指向同一个节点?我注意到BookMark类有一个equals和deepEquals方法,但我不想在不需要的情况下引入更多类,更多对象实例和更多引用。我可以简单地比较两个实例的当前索引吗?

1 个答案:

答案 0 :(得分:1)

请参阅下面的答案:

  1. 一般来说,clone()承担了在最典型的用例中分配和复制大约 30~40 整数的int数组的开销......所以除非文档你工作的是非常小的,这应该不是什么大问题......

  2. 是的,比较当前索引的工作原理!!!