LINUX.ORG.RU

укажите на подходящий инструмент


0

0

задача на 95% состоит из обработки строк. perl до сих пор в этой области самый шустрый? может быть есть что-то быстрее ... например из компиляторов? что у С++ на этом фронте? по запросам "text processing C++ vs Perl" в гугле не нашел ничего подходящего. спасибо за помощь.


Смотря что за обработка строк. Если это что-то типа гипермассированного анализа логов (ну там, биллинг обычной телефонии, например), и регулярных грамматик разбора достаточно - то можно попробовать Ragel, это регулярки на стероидах для компилируемых языков, кодогенератор типа lex, только с человечным синтаксисом.

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

Если же обработка скорее сложная, чем очень массовая (ну там, робот для поисковой системы) - то можно посмотреть на ANTLR. Или на Spirit, но это для дзен-программистов с 8-миядерным процом на сборочной машине. Потому что его ошибки нечитабельны, и компилируется он очень-очень медленно.

Короче, писать парсеры на C++ руками, по-моему, не стоит, нужно их генерировать.

anonymous
()

несколько лет назад я сравнивал c++ boost regexp и perl, regexp одинаковый, файл с данными одинаковый. c++ boost regexp обрабатывал его за семь секунд, perl за одну секунду с небольшим.

ps: не спорю, возможно я не правильно использовал boost regexp :)

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

ну по трудо-затратам перл делает всех
это же язык для обработки текстовой информации

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

То, что регекспы в перле быстрые - это да. Но если требуется какая-то еще нетривиальная обработка, то может оказаться, что интерпретатор съел весь выигрыш.

А писать проще, конечно, на перле. Только нужно не увлекаться, и понимать, что это еще и читать потом потребуется наверняка. И понимать, что это такой же язык программирования, требующий такой же или большей дисциплины разработки, как и Си-плас-плас.

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