MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / main

Function main

src/benchmarks/json_render.cpp:100–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98} // namespace
99
100int main(int argc, char **argv)
101{
102 if (argc < 2)
103 {
104 std::cerr << "Usage: " << argv[0] << " file.json\n";
105 return EXIT_FAILURE;
106 }
107
108 const auto obj = load(argv[1]);
109
110 TIMER_START(string);
111 std::string out_str;
112 json::render(out_str, obj);
113 TIMER_STOP(string);
114 std::cout << "String: " << TIMER_MSEC(string) << "ms" << std::endl;
115
116 TIMER_START(stringstream);
117 std::stringstream ss;
118 json::render(ss, obj);
119 std::string out_ss_str{ss.str()};
120 TIMER_STOP(stringstream);
121
122 std::cout << "Stringstream: " << TIMER_MSEC(stringstream) << "ms" << std::endl;
123 TIMER_START(vector);
124 std::vector<char> out_vec;
125 json::render(out_vec, obj);
126 TIMER_STOP(vector);
127 std::cout << "Vector: " << TIMER_MSEC(vector) << "ms" << std::endl;
128
129 if (std::string{out_vec.begin(), out_vec.end()} != out_str || out_str != out_ss_str)
130 {
131 std::cerr << "Vector/string results are not equal\n";
132 throw std::logic_error("Vector/stringstream/string results are not equal");
133 }
134 return EXIT_SUCCESS;
135}

Callers

nothing calls this directly

Calls 4

loadFunction · 0.85
renderFunction · 0.50
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected