← All posts tagged sax

agr
Win Haskell XML sax По итогам проведения разных тестов в #2808429 над XML 3.5 ГБ (one-line) или 4 ГБ (pretty-printed): Haskell вполне годится для потоковой обработки XML.
Тесты производились с помощью tagsoup + fast-tagsoup на ручной нарезке ленивых ByteString на чанки размером ~20 МБ (так, чтобы не разрезать события SAX парсинга).

Это Win!

Следите за ленью, юзайте beautiful folds (https://hackage.haskell.org/package/folds-0.6.3) и будет вам счастье!

Ухожу в подполье.
agr
Haskell XML sax XML SAX Parser.
Lazy ByteString хорошо, но долго.
Добавляем туда замечательных фолдов, просто считаем число событий, максимально не ленясь. Для начала.
Итого 1035 секунд на 3.5 ГБ.
Strict ByteString хорошо, но сразу не хватает памяти.
Думаю, раз такое дело, то стоит дробить Strict ByteString на куски определенного размера +- несколько десятков байт на то, чтобы гарантированно попасть на границу событий. И затем передавать вычисленный аккумулятор дальше по списку.
Думаю, так оно быстрее выйдет.