powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как распараллелить загрузку XML?
25 сообщений из 122, страница 4 из 5
Как распараллелить загрузку XML?
    #39374805
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Предлагаю это main xml и подчиненные xml хранить в zip файле.
наконец то ))
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374806
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилну а к чему упражнения с параллельным парсингом тогда?Для того чтобы любители xml радовались и говорили как у них все круто.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374807
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилнаконец то ))Вы все знали и ждали пока мы догадаемся?
Круто.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374808
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Изопропилнаконец то ))Вы все знали и ждали пока мы догадаемся?
Круто.
задачу парсинга то решали, а не хранения и передачи
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374813
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилзадачу парсинга то решали, а не хранения и передачиzip пригодится как для хранения и передачи, так и будет являться контейнером big xml представленным в виде набора подчиненных xml-s.
Пожалуй даже отпадет необходимость в понятии main xml, содержащего данные об подчиненных xml.
По той простой причине, что xml-s будут иметь числовой префикс порядка их следования.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374814
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSAX парсер
Можно же еще быстрее. Например XmlReader в C# у меня парсит 48 Мб за 2.1 сек. Если тупо прогнать цикл с подсчетом количества тэгов получается 0.3 сек. Читать блоками по 32 К - 0.01 сек.

Что-то параллелить с использованием XmlReader не очень получается. А с самодельным предварительным разбором можно было бы распараллелить и вместо 2.1 сек получить меньше 1 сек. Хотя и так устраивает.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374818
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЧто-то параллелить с использованием XmlReader не очень получается. А с самодельным предварительным разбором можно было бы распараллелить и вместо 2.1 сек получить меньше 1 сек. Хотя и так устраивает.Ну может быть кто-нибудь и реализует то, что мы обсуждаем.
Не исключаю, что в свою library для работы с xml включу возможность как создания логических блоков ..., так и параллельный парсинг, ... /а программисту решать использовать или нет/.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374819
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИсходный файл парсить не XML-парсерами, а просто как файл, самодельным парсером, блоками
по 32 К (одного буфера достаточно): прочитали, разобрали как текст, сбросили буфер в
конечный файл.
В результате имеем невалидный XML в файлах и оверхэд по вводу-выводу. В морг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374827
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima TИсходный файл парсить не XML-парсерами, а просто как файл, самодельным парсером, блоками
по 32 К (одного буфера достаточно): прочитали, разобрали как текст, сбросили буфер в
конечный файл.
В результате имеем невалидный XML в файлах и оверхэд по вводу-выводу. В морг.

Файл получится валидный, про валидность было в конце того поста, откуда ты этот кусок вырезал.
Оверхэд не критичен, т.к. IO намного быстрее разбора.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374832
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Dima TЧто-то параллелить с использованием XmlReader не очень получается. А с самодельным предварительным разбором можно было бы распараллелить и вместо 2.1 сек получить меньше 1 сек. Хотя и так устраивает.Ну может быть кто-нибудь и реализует то, что мы обсуждаем.
Не исключаю, что в свою library для работы с xml включу возможность как создания логических блоков ..., так и параллельный парсинг, ... /а программисту решать использовать или нет/.
ИМХУ задача штучная поэтому решения должны быть штучными, поэтому нет смыла делать какую-то универсальную либу для решения уникальных задач. Обычно гигабайты в XML никто не передает, для таких случаев есть другие варианты.

Касаемо приведенных цифр - это реальная стыковка с конкретной чужой системой и там размер XML ограничен не мной, а писателем, им сложно писать больше разом, сами попросили адаптировать прием под несколько файлов, вместо одного большого (200+ Мб) т.к. у них при генерации в один XML все падает. Они пишут медленнее чем я обрабатываю, поэтому ускорять нечего.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374836
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли тупо прогнать цикл с подсчетом количества тэгов получается 0.3 сек.
entity коды АСПушкин будет обрабатывать?
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374848
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDima TЕсли тупо прогнать цикл с подсчетом количества тэгов получается 0.3 сек.
entity коды АСПушкин будет обрабатывать?
Это ты о чем?
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374861
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем господам которые предлагают делать кастомные парсеры которые
бегают с середины файла или каким-то другим образом ломают поток
xml-контента.

Это не летает! XML в общем случае нельзя резать! Хедер несет важную информацию
о xml-schema, xml-entities, а также сведения о кодовой странице e.t.c.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374862
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

интересный пост тут и тут недавно вышел, там очень познавательно про чтение с диска описано

Имхо, не надо никаких потоков
грузим поочерёдно в два буфера, пока грузится следущий парсим предыдущий - обычные OVERLAPPED операции
и лучше SAX конечно использовать
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374864
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИзопропилпропущено...

entity коды АСПушкин будет обрабатывать?
Это ты о чем?
перед написанием парсера крайне желательно ознакомиться со спецификацией формата.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374936
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня знания в области права такие же как у балерины по тяжелой атлетики.
Поэтому просьба дать ответ на кое-какие вопросы.

Ну вот скажем осилю и доведу до production а-ля MSXML libraries.
Если разместить на github будет ли на меня "наезжать" Microsoft?
C++ код мой /доработанный TinyXML2 и очень существенно/, но API то не мой.

Так как TinyXML2 превратился в а-ля MSXML, то не будет возражать автор этой библиотеки против такого произвола?
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374939
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Так как TinyXML2 превратился в а-ля MSXML, то не будет возражать автор этой библиотеки против такого произвола?
До тех пор пока ты не зарабатываешь на нем деньги - всем будет пофиг.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374949
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не совсем понял, а в чем собственно проблема параллельно парсить разные куски файла?
Для этого требуется стандартный парсер XML поддерживающий абстрактные источники данных (например std::istream), и написать адаптер который из любой заданной позиции файла находит первый тег, и оттуда начинает скармливать парсеру данные до определенного предела. Ну и добавить обработку обрезков попадающих в разные секции.
Естественно, XML данные должны иметь регулярную структуру для этого - быть наборами однотипных тегов.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374952
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топик превращяется в зыбкое болото. Я-бы мог еще поспорить на тему КПД этого механизма
но решительно лень да и автор поставил постановку весьма философскую дескыть сколько
ангелов танцуют на иголочке или может ли господь поднять камень e.t.c.

Вот и перекидываемся лениво.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39374953
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТопик превращяется в зыбкое болото. Я-бы мог еще поспорить на тему КПД этого механизма
но решительно леньА зачем спорить?
Просто выскажете свое мнение и при этом желательно объяснить его.

ИМХНО - можно реализовать алгоритма параллельного парсинга.
Вопрос только в одном - "Будет ли польза от этого?".
Как по мне - да.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39375046
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012maytonТопик превращяется в зыбкое болото. Я-бы мог еще поспорить на тему КПД этого механизма
но решительно леньА зачем спорить?
Просто выскажете свое мнение и при этом желательно объяснить его.

ИМХНО - можно реализовать алгоритма параллельного парсинга.
Вопрос только в одном - "Будет ли польза от этого?".
Как по мне - да.

Не будет пользы.

Один уже пытался сделать самый быстрый в мире парсер:
http://www.sql.ru/forum/1001189/proekt-apollosax
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39375071
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Вопрос только в одном - "Будет ли польза от этого?".
Как по мне - да.
пользы никакой , а вред конкретный - потеря времени.
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39375370
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм.
Раньше использовал для работы "Msxml2.DOMDocument.4.0", а теперь TinyMSXML /шутка/.
Все Ok!
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39375391
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012maytonТопик превращяется в зыбкое болото. Я-бы мог еще поспорить на тему КПД этого механизма
но решительно леньА зачем спорить?
Просто выскажете свое мнение и при этом желательно объяснить его.

ИМХНО - можно реализовать алгоритма параллельного парсинга.
Вопрос только в одном - "Будет ли польза от этого?".
Как по мне - да.
имхо, если есть утверждение, что парсинг медленнее загрузки с диска, то для начала стоит пройтись профайлером и выяснить, что конкретно тормозит
...
Рейтинг: 0 / 0
Как распараллелить загрузку XML?
    #39375406
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)имхо, если есть утверждение, что парсинг медленнее загрузки с диска, то для начала стоит пройтись профайлером и выяснить, что конкретно тормозитДа причем здесь это.
Вопрос в другом.
Вот скажем загрузили в memory xml размером 10MB.
Что будет более эффективно.
Парсить его в 1 потоке или параллельно в нескольких?

У меня нет цели кому-то что-то доказывать.
Вопрос чисто дискуссионный /и не более того/.

PS: Хотя некоторые кто читает посты по диагонали справа на лево с пропуском "многострочных частей"
начинают выдумывать некое свое видение в чем суть поста.
...
Рейтинг: 0 / 0
25 сообщений из 122, страница 4 из 5
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как распараллелить загрузку XML?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]