summaryrefslogtreecommitdiff
path: root/utils/yaml-bench/YAMLBench.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/yaml-bench/YAMLBench.cpp')
-rw-r--r--utils/yaml-bench/YAMLBench.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/utils/yaml-bench/YAMLBench.cpp b/utils/yaml-bench/YAMLBench.cpp
index c3c7c152c2..39b8f72ecc 100644
--- a/utils/yaml-bench/YAMLBench.cpp
+++ b/utils/yaml-bench/YAMLBench.cpp
@@ -166,21 +166,23 @@ static void benchmark( llvm::TimerGroup &Group
}
static std::string createJSONText(size_t MemoryMB, unsigned ValueSize) {
- llvm::string_ostream OS;
- OS << "[\n";
+ std::string JSONText;
+ llvm::raw_string_ostream Stream(JSONText);
+ Stream << "[\n";
size_t MemoryBytes = MemoryMB * 1024 * 1024;
- while (OS.tell() < MemoryBytes) {
- OS << " {\n"
- << " \"key1\": \"" << std::string(ValueSize, '*') << "\",\n"
- << " \"key2\": \"" << std::string(ValueSize, '*') << "\",\n"
- << " \"key3\": \"" << std::string(ValueSize, '*') << "\"\n"
- << " }";
- if (OS.tell() < MemoryBytes)
- OS << ",";
- OS << "\n";
+ while (JSONText.size() < MemoryBytes) {
+ Stream << " {\n"
+ << " \"key1\": \"" << std::string(ValueSize, '*') << "\",\n"
+ << " \"key2\": \"" << std::string(ValueSize, '*') << "\",\n"
+ << " \"key3\": \"" << std::string(ValueSize, '*') << "\"\n"
+ << " }";
+ Stream.flush();
+ if (JSONText.size() < MemoryBytes) Stream << ",";
+ Stream << "\n";
}
- OS << "]\n";
- return OS.str();
+ Stream << "]\n";
+ Stream.flush();
+ return JSONText;
}
int main(int argc, char **argv) {