Здравствуйте, pzhy, Вы писали:
J>>>>только одно замечание: имхо, смотреть в сторону flex/bison имеет смысл только если гонишься за скоростью либо генерацией парсеров на нескольких языках, в остальном спирит в плане интеграции с твоим кодом удобнее будет. Особенно Спирит2.
P>>>По скорости в рантайме, думаю спирит будет быстрее. Спирит2, я так и не нашел как к обработчику прикрутить позиционный итератор. Хотя не так долго искал.
ТКС>>В спирите раньше был глобальный мьютекс (сейчас не знаю), который иногда здорово просаживал производительность.
P>Интересно, с чем же он конкурировал? Он что парсит в несколько потоков?
У меня в программе сериализация в xml в несколько потоков, соответственно и парсить надо было в несколько потоков.
P>Когда вешал его, то почему-то видел 100% занятие только одного ядра. Но если все же в несколько потоков, то респект разрабам. Да только по всей логике, так быть не может. Вы с чем то путаете
Сейчас проверил — в версии 1.42 данный мьютекс по-прежнему в наличии, ищется по макросу BOOST_SPIRIT_THREADSAFE. Хотя раньше вроде как-то слегка по другому там все было. На кой черт он понадобился в object_with_id_base — понятия не имею. Я при возникновении проблемы просто переписал xml-парсер без спирита, благо были и другие показания (рекурсивное правило, которое я не знал как переписать со спиритом без рекурсии и которое иногда роняло программу). Стало быстрее.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.