совет по бодрости духа - PullRequest
2 голосов
/ 11 апреля 2011

Мне интересно, насколько хороша библиотека Boost Spirit.

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

Я хотел бы получить некоторые мнения об этом фреймворке от пользователя, который очень хорошо его знает.

Ответы [ 2 ]

9 голосов
/ 11 апреля 2011

Мое мнение, безусловно, предвзято, поэтому, пожалуйста, примите это с зерном соли.

Spirit - это огромный фреймворк, позволяющий создавать очень быстрые парсеры и генераторы на C ++. Созданные парсеры и генераторы прекрасно интегрируются с вашими собственными структурами данных. Дух требует некоторого понимания его основ для эффективного использования. Документация довольно читабельна и объясняет вещи в простых терминах. Доступны буквально сотни примеров, которые я предлагаю рассмотреть в части документации. Понимание этих примеров является неотъемлемой частью изучения того, как использовать Дух. Простые задачи легко решить, более сложные задачи, как правило, требуют определенного мышления и экспериментов, чтобы получить правильные результаты (но это, вероятно, не относится к духу). Spirit имеет активное сообщество, отзывчивый и полезный список рассылки, а также классный веб-сайт с множеством дополнительной информации. Как правило, если вы застряли, получить помощь просто.

Вы платите за всю эту изюминку с увеличенным временем компиляции и огромными сообщениями об ошибках шаблона компилятора, если делаете ошибку. Но после компиляции он обычно работает на месте.

3 голосов
/ 06 декабря 2011

Старый вопрос, с которым я столкнулся, когда искал какую-то информацию о Духе, но я решил, что я поставлю свои 2 цента здесь для будущих читателей.

Сначала я был довольно ошеломлен кривой обучениядуха, до такой степени, что я почти сдался.Но я очень рад, что продолжал идти.Производительность этого парсера просто больная.Ранее я использовал PCRE для анализа заголовков HTTP с помощью некоторых простых регулярных выражений.Это довольно простая операция, и PCRE довольно быстрый, поэтому я не ожидал увидеть значительное улучшение - если таковое имеется - скорости.

Мальчик был удивлен, увидев, что он увеличил производительность более чем2000%.С помощью Spirit я могу анализировать 100 000 наборов HTTP-заголовков с частотой чуть более 1/4 секунды.

И этот кикер в том, что код настолько чистый и компактный по сравнению с аналогичным кодом с PCRE.Моя первоначальная функция, состоящая из 80 строк PCRE gobbledygoop, теперь представляет собой симпатичную маленькую 14-строчную духовную грамматику и адаптер Fusion для передачи результатов непосредственно в мою структуру класса.

Трудно усвоить, а время сборки можетполучить довольно плохо, но выигрыш фантастический.

...