2016-02-04 4 views
1

Я пытаюсь реализовать простую оболочку для vtd-xml. Поскольку эта оболочка позволит использовать произвольный доступ, я решил использовать VTDNav.cloneNav, чтобы позволить обертке одновременно удерживать и перемещать курсоры в разные части XML. Мои вопросы:Object.equals для двух экземпляров VTDNav и стоимости VTDNav.cloneNav

  1. Я знаю, что клонирование экземпляров VTDNav будет иметь штраф исполнения, но в целом, о чем мы здесь говорим? Я, вероятно, сделаю некоторый бенчмаркинг, как только я закончу с оберткой, но, возможно, какая-то информация о стоимости может заставить меня изменить некоторые дизайнерские решения (возможно, использовать только один VTDNav и клонировать только по запросу).
  2. Как сравнить два клонированных экземпляра VTDNav и посмотреть, указывают ли они на один и тот же узел? Я заметил, что класс BookMark имеет метод equals и deepEquals, но я не хочу вводить больше классов, больше экземпляров объектов и больше ссылок, если это не нужно. Можно ли просто сравнить текущие индексы обоих экземпляров?

ответ

1

Смотрите мои ответы ниже:

  1. В общем, клоне() несут издержки выделения и копирования целочисленного массива около 30 ~ 40 целых чисел размера в наиболее типичных случаях применения ... так что если документ, с которым вы работаете, крайне мал, это не должно быть большим делом ...

  2. Да, сравните текущий индекс работает !!!

+0

Спасибо! Я внедрил начальную версию с повторным использованием AutoPilot, и результаты производительности поразительны! Почти до такой степени, что я не верю, что он может нормально функционировать при такой скорости и использовании памяти :) Я должен сказать, что я озадачен тем, почему эта библиотека больше не используется и более известна. Удачи в будущем принятии, это действительно здорово! – buftlica

+0

Мне нравится тот факт, что вы вкопали в код для понимания реализаций, таких как bookMark, концепция vtd-xml очень проста, причина, по которой она работает, может быть сведена в одном предложении: избегать создания объекта. –

+0

@ buftlica-- Один вопрос: посмотрели ли вы на функцию индексации vtd-xml и попытаетесь использовать ее для своих случаев использования? –