Логика VTD-парсера java

Я реализовал VTD-Parser в java, который успешно проанализировал XML-файл размером около 500 МБ и смог написать в Excel. Я понимаю, что синтаксический анализатор DOM сначала создает структуру узлов дерева, а затем получает данные, а SAX — это синтаксический анализатор, основанный на событиях. Но что делает синтаксический анализ файла VTD таким простым и эффективным? Я пытался искать, я получил много примеров реализации, но так и не понял логики. Я попробовал ссылку ниже, чтобы понять идею, но не получил четкой картины. VTD_Parser

Если кто-нибудь может объяснить краткую идею.


person Bhavik Patel    schedule 07.06.2015    source источник


Ответы (1)


Согласно странице Википедии по этому вопросу, VTD-XML (дескриптор виртуального токена для XML) использует неизвлекающий синтаксический анализ, то есть он не извлекает данные из документа в какую-либо структуру данных на основе памяти, а скорее строит структуру данных, содержащую указатели (в виде смещения и длины) на исходный документ. Эта обработка явно наиболее эффективна с точки зрения использования памяти, но я считаю, что она достигается за счет производительности, поскольку неизбежная операция ввода-вывода выполняется при запросе данных (но кэширование здесь может сильно помочь).

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

person Sharon Ben Asher    schedule 07.06.2015
comment
@Bhavik Это неточно, Vtd-xml лучше подходит для интенсивной навигации, чем DOM, и практически не требует затрат на ввод-вывод ... правда в том, что извлечение данных в структуру данных - это всего лишь пустая трата вычислительной мощности и памяти ... Буду рад уточнить подробнее... - person vtd-xml-author; 05.10.2015
comment
@vtd-xml-author - так что же делает синтаксический анализ файла таким простым и эффективным? - person Bhavik Patel; 05.10.2015
comment
Короче говоря, построение дерева DOM (например, создание экземпляров узлов, строк и атрибутов) принципиально не нужно и часто отрицательно влияет на синтаксический анализ XML... VTD-XML обходит их, используя схему постоянной адресации, называемую VTD (дескриптор виртуального токена)... там Вы можете найти в Интернете многочисленные статьи о преимуществах и достоинствах vtd. - person vtd-xml-author; 06.10.2015