in kernel/string-test.cpp [133:186]
const bool testStringPerf() {
memset(charBuffer, 'A', 16384);
charBuffer[16384] = '\0';
const int count = 10000;
{
const lambda<const blambda(const size_t size)> addStrings = [](const size_t size) -> const blambda {
const blambda l = [size]() -> const bool {
const size_t sz = size / 4;
const string x(charBuffer, sz);
const string y(charBuffer, sz);
assert(length(add(x, y)) == sz * 2);
return true;
};
return l;
};
const blambda a16 = addStrings(16);
cout << "string test " << time(a16, 5, count) << " ms" << endl;
const blambda a32 =addStrings(32);
cout << "string test " << time(a32, 5, count) << " ms" << endl;
const blambda a256 =addStrings(256);
cout << "string test " << time(a256, 5, count) << " ms" << endl;
const blambda a1024 =addStrings(1024);
cout << "string test " << time(a1024, 5, count) << " ms" << endl;
const blambda a4096 =addStrings(4096);
cout << "string test " << time(a4096, 5, count) << " ms" << endl;
}
{
const lambda<const blambda(const size_t size)> addStdStrings = [](const size_t size) -> const blambda {
const blambda l = [size]() -> const bool {
const size_t sz = size / 4;
const std::string x(charBuffer, sz);
const std::string y(charBuffer, sz);
assert(stdAdd(x, y).length() == (unsigned int)(sz * 2));
return true;
};
return l;
};
const blambda a16 =addStdStrings(16);
cout << "Std string test " << time(a16, 5, count) << " ms" << endl;
const blambda a32 =addStdStrings(32);
cout << "Std string test " << time(a32, 5, count) << " ms" << endl;
const blambda a256 =addStdStrings(256);
cout << "Std string test " << time(a256, 5, count) << " ms" << endl;
const blambda a1024 =addStdStrings(1024);
cout << "Std string test " << time(a1024, 5, count) << " ms" << endl;
const blambda a4096 =addStdStrings(4096);
cout << "Std string test " << time(a4096, 5, count) << " ms" << endl;
}
return true;
}