Я пытаюсь реализовать простую оболочку для vtd-xml. Поскольку эта оболочка позволит использовать произвольный доступ, я решил использовать VTDNav.cloneNav, чтобы позволить обертке одновременно удерживать и перемещать курсоры в разные части XML. Мои вопросы:Object.equals для двух экземпляров VTDNav и стоимости VTDNav.cloneNav
- Я знаю, что клонирование экземпляров VTDNav будет иметь штраф исполнения, но в целом, о чем мы здесь говорим? Я, вероятно, сделаю некоторый бенчмаркинг, как только я закончу с оберткой, но, возможно, какая-то информация о стоимости может заставить меня изменить некоторые дизайнерские решения (возможно, использовать только один VTDNav и клонировать только по запросу).
- Как сравнить два клонированных экземпляра VTDNav и посмотреть, указывают ли они на один и тот же узел? Я заметил, что класс BookMark имеет метод equals и deepEquals, но я не хочу вводить больше классов, больше экземпляров объектов и больше ссылок, если это не нужно. Можно ли просто сравнить текущие индексы обоих экземпляров?
Спасибо! Я внедрил начальную версию с повторным использованием AutoPilot, и результаты производительности поразительны! Почти до такой степени, что я не верю, что он может нормально функционировать при такой скорости и использовании памяти :) Я должен сказать, что я озадачен тем, почему эта библиотека больше не используется и более известна. Удачи в будущем принятии, это действительно здорово! – buftlica
Мне нравится тот факт, что вы вкопали в код для понимания реализаций, таких как bookMark, концепция vtd-xml очень проста, причина, по которой она работает, может быть сведена в одном предложении: избегать создания объекта. –
@ buftlica-- Один вопрос: посмотрели ли вы на функцию индексации vtd-xml и попытаетесь использовать ее для своих случаев использования? –