LINUX.ORG.RU

Статья о производительности xml-парсеров

 , ,


0

0

Scott Sanders опубликовал статью с результатами сравнения различных xml-парсеров. Проверке подверглись как известные продукты, такие как RapidXml, DOM4J, libxml2sax, Java6, так и менее известные - Aalto, Javolution, Woodstox, StaX, phobos и Tango.

По результатам сравнения видно, что с задачей обработки файлов одинакового объема быстрее всех справляется Tango pull parser. С небольшим отставанием идут Tango SAX, Tango DOM и RapidXml.

>>> XML Benchmarks - pros and cons of each library

>>> Why is D/Tango so fast at parsing XML?

>>> Результаты

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от ShprotX

Насколько я помню, никто и не считал, что D - отстой. Просто ему будет сложно конкурировать с уже устоявшимися гигантами. А парсер, аналогичный по скорости Tango можно написать и на C/C++, хоть и будет он ужасно страшным. Тут вся заслуга в квалификации автора - Kris Bell. Исходники, кстати, открыты: www.dsource.org/projects/tango/browser

naryl ★★★★★
() автор топика
Ответ на: комментарий от ShprotX

> Ну, кто-нибудь еще считает, что D - отстой?

Если писать исключительно XML-парсилки, то D - мой выбор! Аминь.

Дайте ему устаканиться, обрости библиотеками и биндингами, а потом уже сравнивайте его со старожилами.

troorl ★★
()
Ответ на: комментарий от ShprotX

А зачем он нужен? Для институтских поделий - возможно. А на предприятиях кодебейз С/С++ переписывать в него точно не будут.

anonymousI
()
Ответ на: комментарий от troorl

> Дайте ему устаканиться, обрости библиотеками и биндингами, а потом уже сравнивайте его со старожилами.

+1 Этот тест доказывает, что на D можно написать _очень_ быструю xml парсилку, а на java - нет, но не более.

Чтобы добрые люди не копались в глубокой древовидной структуре: http://www.dsource.org/projects/tango/browser/trunk/tango/text/xml

PS Сам давно предпочитаю D для личных проектов.

naryl ★★★★★
() автор топика
Ответ на: комментарий от anonymousI

> на предприятиях кодебейз С/С++ переписывать в него точно не будут.

А что, _новых_ приложений на Си/Си++ больше не нужно? Именно на это нацелен D.

tailgunner ★★★★★
()
Ответ на: комментарий от alex_custov

В Опере 9.2x

А в 9.5 они от него отказались.

anonymous
()
Ответ на: комментарий от anonymousI

C-codebase переписывать не нужно, он с ним совместим. Вот с С++ - нет.

JackYF ★★★★
()
Ответ на: комментарий от alex_custov

> ЛОР-эффект, однако

Первый раз наблюдаю ЛОР-эффект в действии. :) Буквально 10 минут назад по этой самой ссылке ходил.

naryl ★★★★★
() автор топика

А может кто-нибудь в двух словах расписать, как оно работает? То есть, его особенности я в общих чертах знаю, но как они достигаются?

troorl ★★
()
Ответ на: комментарий от troorl

Особенности чего? Языка, библиотеки, pull parser'ов?

naryl ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> Вроде GTK+ пытаются прикрутить

DUI - объектно-ориентированная обертка. Саму GTK+ можно использовать прямо из D.

naryl ★★★★★
() автор топика
Ответ на: комментарий от anonymousI

C++ можно привязать через C. Подругому никак. Только если переписать.

А адепты M$ один @#$ будут .NET продвигать, независимо от того, что лучше и удобнее.

naryl ★★★★★
() автор топика

Если X создано ради X, то X = отстой.

mono = отстой, d = отстой, windows = отстой.

C = ъ, Perl = Ъ, UNIX= Ъ.

Дальше сами.

ip1981 ☆☆
()
Ответ на: комментарий от naryl

> А парсер, аналогичный по скорости Tango можно написать и на C/C++, хоть и будет он ужасно страшным.

Не страшным, а просто недоступным для понимания людям с улицы.

Displacer ★★
()
Ответ на: комментарий от tailgunner

> А что, _новых_ приложений на Си/Си++ больше не нужно?

Приложения нужны, но еще нужнее грамотные люди, которые будут их писать. С этим нынче напряг, все ушли на жаводотнет.

Displacer ★★
()
Ответ на: комментарий от ip1981

> Если X создано ради X, то X = отстой.

Qt - отстой, Eclipse - отстой, дальше сами...

naryl ★★★★★
() автор топика
Ответ на: комментарий от Displacer

PS: ушли, конечно же не все, скорее те кто, был, те остались, новый народ не хочет учиться :)

Displacer ★★
()
Ответ на: комментарий от Displacer

На жаводотнет ушли неосилившие C/C++, и в этом нет ничего плохого... почти. Пусть лучше человек пишет глючные программки жаводотнете, чем не пишет вообще.

naryl ★★★★★
() автор топика
Ответ на: комментарий от eduard_pustobaev

Согласно главной странице проекта flkt4d, оно использует С++-код, поэтому там какие-то затыки со сборкой мусора. А нафиг тогда оно надо, если Qt есть?

Есть там один гуй на OpenGL, но он уже как полгода не разивается. Остаётся... официальный dwt. Кстати, а gdc с dwt дружит-то?

JackYF ★★★★
()
Ответ на: комментарий от JackYF

Деньги решают ^_^

Только сегодня разговаривал с работником фирмы обслуживающей всякие банки. Легаси софта на коболе говорит еще полно.

anonymousI
()
Ответ на: комментарий от naryl

> На жаводотнет ушли неосилившие C/C++

О да, там есть, что осиливать. :-D

Bohtvaroh ★★★★
()

Я, помнится, интереса ради проводил замеры втягивания 20-мегабайтного xml с помощью нескольких парсеров для плюсов (xerces-c, boost::property_tree, libxml++), и перетягивание в s-exp в Емаксе и sbcl (xml.el в emacs, xmls в sbcl. Медленнее всех оказался property_tree, а быстрее всех - sbcl и xmls. xml.el. Интерпретируемый elisp оказался где-то в середине.

mv ★★★★★
()
Ответ на: комментарий от anonymousI

> Деньги решают ^_^

Решает for fun, а деньги - бумага. Не так ли, товарищи линуксоиды?
*неуверенный голос из аудитории* истинно так, товарищ Жуков.

troorl ★★
()
Ответ на: комментарий от naryl

>На жаводотнет ушли неосилившие C/C++, и в этом нет ничего плохого... почти. Пусть лучше человек пишет глючные программки жаводотнете, чем не пишет вообще.

Чушь и провокация, вы либо совсем не в теме либо пионер короткие штанишки.

satellite13
()
Ответ на: комментарий от troorl

Можешь отдать всю эту бумагу мне, а fun оставь себе, я как-нибудь обойдусь.

anonymous
()
Ответ на: комментарий от anonymousI

>А зачем он нужен? Для институтских поделий - возможно. А на предприятиях кодебейз С/С++ переписывать в него точно не будут.

Когда-то точно также зарекались от переписывания тонн софта на FORTRAN и COBOL :D

KRoN73 ★★★★★
()
Ответ на: комментарий от ip1981

>Если X создано ради X, то X = отстой.

>mono = отстой, d = отстой, windows = отстой.

>C = ъ, Perl = Ъ, UNIX= Ъ.

Вот буквально в соседнем топике рвали тельняшку на груди, утверждая, что mono писался для Gnome. По этой трактовке выходит, что mono - Ъ :)

KRoN73 ★★★★★
()
Ответ на: комментарий от mv

Предложи автору добавить xmls.

naryl ★★★★★
() автор топика
Ответ на: комментарий от satellite13

> Чушь и провокация

Прошу прощения, сболтнул неподумав.

naryl ★★★★★
() автор топика
Ответ на: комментарий от JackYF

> Согласно главной странице проекта flkt4d, оно использует С++-код, поэтому там какие-то затыки со сборкой мусора.

Суть в том, что fltk4D своевременно убирает объекты fltk используя reference counting. Никаких затыков. По крайней мере утечек памяти быть не должно.

naryl ★★★★★
() автор топика
Ответ на: комментарий от anonymousI

> Новый мутант ЖабоЦеПепе

4.2

Революционность (эволюционность) пару раз уже обсуждалась. Воспользуйтесь поиском.

naryl ★★★★★
() автор топика

Уже давно пытаюсь осилить D... Вот пока что нарыл:
1) GUI - http://www.dsource.org/projects/dwt, скрины - http://www.dsource.org/projects/dwt/wiki/ControlExample . Насчет GDC написано "not tested", но думаю работать должно - D 2.0 фичей не требует.
Есть еще DFL с Entice(IDE+form editor), но оно пока windows-only. Хотя от портирования автор не отказывался.
2) IDE - http://www.dsource.org/projects/poseidon . Написана на DWT, значит он вполне юзабельный, да и работа идет.
3) Библиотеки - http://www.dsource.org/projects/tango/wiki/Features .
Весьма немаленький список, да и бинарная совместимость с Си-либами есть.
4) Отладчик - http://ddbg.mainia.de/releases.html .

Для моих жалких студенческих поделий (компилятор недопаскаля) D вполне подходит.

//captcha lipter

anonymous
()
Ответ на: комментарий от naryl

Еще один красноглазый фанат D? Добро пожаловать! :)

anonymous
()
Ответ на: комментарий от naryl

> На жаводотнет ушли неосилившие C/C++

Жаба душит? Джава-программисты спать спокойно не дают? А по существу есть что сказать?

Bioreactor ★★★★★
()
Ответ на: комментарий от anonymous

> Я так понимаю, что сервак с блогом тоже на D написан?

:) +1 ни вчера, ни сегодня не открывается

dilmah ★★★★★
()

Sounds like one of the design choices is to ignore DTDs and entities. Fine, but they shouldn't call what they are parsing XML. By definition, this is not an XML parser.

No solution that requires the entire XML file be in memory can be called memory efficient. XML files are often program-generated data files and can be hundreds to thousands of megabytes long. OTOH, if their parser works out of a buffer and doesn't guarantee that array slices are valid after they are reported, they have some interesting buffer boundary issues. Further, if the parser is used DOM-style, there is no reduction in memory allocation; they are just passing the memory allocation burden to the parser user.

Как правильно замечают иностранные коллеги, сравнивали непонятно что с непонятно чем. Да, быстро, но - только в памяти, и - не XML-парзер, а "библиотека, обрабатывающая нечто, отдаленно похожее на XML".

stellar
()
Ответ на: комментарий от naryl

>усть лучше человек пишет глючные программки жаводотнете, чем не пишет вообще.

Пусть лучше человек торгует телом, чем не торгует вообще.

anonymous
()
Ответ на: комментарий от Bioreactor

>А по существу есть что сказать?

>Bioreactor (*) (14.03.2008 9:51:58)

ААА! Говорящий биореактор!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.