crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> производительность regex, сравнил производительность у разных компиляторов
alexy
  опции профиля:
сообщение 24.7.2015, 17:00
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


пишу тут абстрактный веб сервер, первой сделал реализацию на libh2o (пишут, что быстрее чем nginx). но там не поддерживаются регулярные выражения, так что можно обработчик запроса поставить только по началу пути. решил замутить свое, но оно жутко тормозило, начал выяснять, уперся в std::regex

$g++-5 --version
g++-5 (Debian 5.1.1-14) 5.1.1 20150711

$g++ --version
g++ (Debian 4.9.3-2) 4.9.3

$clang++ --version
Debian clang version 3.7.0-svn239806-1+b1 (trunk) (based on LLVM 3.7.0)


вышло
g++-5 - 165 milliseconds (boost 13)
clang++ 149 milliseconds (boost 13)
а вот g++ 1663 (boost 12 один раз, другие 13)

интересно, сколько нужно времени gcc и clang'у чтобы догнать буст? :)

собственно код
int main(int,char**)
{
    std::string text = "/some/path/dkfjasg;kfhd/04857q2==kjkgjhoi34k[h/sock";
    boost::regex parser("/some/path/([^/]+)/([^/]+)/sock");

    chronometr chron; // в деструкторе печает сколько прошло от конструирования объекта
    for(std::size_t i=0;i<10000;++i)
    {
        boost::smatch mt;
        boost::regex_match(text,mt,parser);
    }

    return 0;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.6.2018, 19:25