HomePhabricator

Improve performance of constructing filesystem::path from strings.

Description

Improve performance of constructing filesystem::path from strings.

This patch fixes a performance bug when constructing or appending to a path
from a string or c-string. Previously we called 'push_back' to append every
single character. This caused multiple re-allocation and copies when at most
one reallocation is necessary. The new behavior is to simply call
string::append so it can correctly handle reallocation.

For large strings this change is a ~4x improvement. This also makes our path
faster to construct than libstdc++'s.

Details

Committed
EricWFOct 30 2016, 4:53 PM
Parents
rL285529: [SCEV] In CompareValueComplexity, order global values by their name
Branches
Unknown
Tags
Unknown