[Bug libstdc++/71108] New: to_string is relatively slow
adrian.wielgosik at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri May 13 20:26:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71108
Bug ID: 71108
Summary: to_string is relatively slow
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: adrian.wielgosik at gmail dot com
Target Milestone: ---
Currently to_string is implemented in terms of vsnprintf, which makes it close
in performance to the sprintf family. Meanwhile hand-written implementations of
to_string can be up to an order of magnitude faster.
For example, this function is 3-7x faster than 6.1 std::to_string(unsigned int)
in a microbenchmark.
std::string to_string(unsigned int value)
{
char buffer[20];
char *end = std::end(buffer);
char *it = end;
do {
it--;
*it = '0' + value % 10;
value /= 10;
} while (value);
return std::string(it, end);
}
More information about the Gcc-bugs
mailing list