Object.equals 两个 VTDNav 实例和 VTDNav.cloneNav 的成本

Object.equals for two VTDNav instances and cost of VTDNav.cloneNav

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

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

查看下面我的回答:

  1. 通常,在最典型的用例中,clone() 会承担分配和复制大小约为 30~40 整数的 int 数组的开销...所以除非您正在使用的文档非常小,否则应该没什么大不了的...

  2. 是的,比较当前的索引效果!!!