tag:blogger.com,1999:blog-22921254.post458847073921618068..comments2023-09-04T14:38:18.275+03:00Comments on Raider's Programming Blog: Fast parsingRaiderhttp://www.blogger.com/profile/14942191356667310038noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-22921254.post-19635154226869057112009-07-13T08:58:09.690+04:002009-07-13T08:58:09.690+04:00я вот читал у Саттера про перевод int в строку, ра...я вот читал у Саттера про перевод int в строку, рассматриваются подходы, в том числе и lexical_cast (причем его производительность по тем тестам на порядок хуже sprintf, и даже проигрывает std-шному stringstream'у).<br />Но что то я засомневался, что текущее положение дел не поменялось.<br />Протестировал версию 1,38 на mingw, vs2008, intel 10, С++Builder 6 - во всех случаях производительность была выше чем у stringstream, а отставание от sprintf значительно сократилось.<br />Часто встречал плохие отзывы касаемо производительности lexical_cast - но видимо зачастую это связано именно с заметкой Саттера (которая как оказалось несколько устарела).<br />Для себя пришел к выводу что для одиночных вызовов - это одно из самых удобных средств.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-22921254.post-91809266193675414792009-07-08T15:04:51.913+04:002009-07-08T15:04:51.913+04:00Spirit 2 пока использовать не советую - сыроват и ...Spirit 2 пока использовать не советую - сыроват и документации почти нет. Лучше classic, хотя есть некоторые различия между этими версиями.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-22921254.post-52741197844966260212009-06-27T22:29:13.177+04:002009-06-27T22:29:13.177+04:00> ... с проблемой использования неинициализиров...> ... с проблемой использования неинициализированных range<br /><br />Есть boost::optional если не хочется что-либо инициализировать. Или, если нужен пустой range - итераторы можно взять у пустого static контейнера, специально для этого объявленного прямо в том месте, где нужно возвращать пустой range.Raiderhttps://www.blogger.com/profile/14942191356667310038noreply@blogger.comtag:blogger.com,1999:blog-22921254.post-54689056133660045172009-06-27T18:50:45.122+04:002009-06-27T18:50:45.122+04:00Задам вопрос здесь. Уже сталкивались с проблемой ...Задам вопрос здесь. Уже сталкивались с проблемой использования неинициализированных range. Как боритесь? Избегаете или отключаете checked iterators ?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-22921254.post-85721983982348993792009-06-27T16:47:24.853+04:002009-06-27T16:47:24.853+04:00Использовал и boost::tokenizer, и boost::regex, и ...Использовал и boost::tokenizer, и boost::regex, и вручную писал, но остановился на spirit'е. Работает быстро даже на достаточно сложных выражениях, некоторое время потребовалось на изучение, но оно того стоит. Очень гибкая вещь. А вот lexical_cast не использую, действительно, не самая быстрая штука.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-22921254.post-78988299111841149452009-06-23T12:54:40.955+04:002009-06-23T12:54:40.955+04:00в принципе, да, я так и делал, когда грамматики от...в принципе, да, я так и делал, когда грамматики отлаживал...Alex Otthttps://www.blogger.com/profile/13001951608173211050noreply@blogger.comtag:blogger.com,1999:blog-22921254.post-35506128524110235722009-06-23T12:45:51.935+04:002009-06-23T12:45:51.935+04:00Минута - в принципе более-менее приемлемо для цикл...Минута - в принципе более-менее приемлемо для цикла "подправил грамматику - скомпилировал - посмотрел результат - снова подправил ...".Raiderhttps://www.blogger.com/profile/14942191356667310038noreply@blogger.comtag:blogger.com,1999:blog-22921254.post-20086534925653356632009-06-23T12:37:34.346+04:002009-06-23T12:37:34.346+04:00мои грамматики для языков - до минут на gcc 4.3 и ...мои грамматики для языков - до минут на gcc 4.3 и минут 10-15 на gcc 3.4Alex Otthttps://www.blogger.com/profile/13001951608173211050noreply@blogger.comtag:blogger.com,1999:blog-22921254.post-90453218327193514432009-06-23T12:34:24.265+04:002009-06-23T12:34:24.265+04:00А компилируется быстро? ;)А компилируется быстро? ;)Raiderhttps://www.blogger.com/profile/14942191356667310038noreply@blogger.comtag:blogger.com,1999:blog-22921254.post-4456459934741359092009-06-23T12:32:38.683+04:002009-06-23T12:32:38.683+04:00я спирит активно использую, как для парсенья файло...я спирит активно использую, как для парсенья файлов в разных форматах, так и для написания собственных языков. работает очень быстро, даAlex Otthttps://www.blogger.com/profile/13001951608173211050noreply@blogger.com