пишу тут абстрактный веб сервер, первой сделал реализацию на 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;
}