wip
This commit is contained in:
parent
ef8f3d7508
commit
463663b05e
@ -30,6 +30,18 @@ target_link_libraries(match-bench
|
||||
${TBB_LIBRARIES}
|
||||
${MAYBE_SHAPEFILE})
|
||||
|
||||
add_executable(json-render-bench
|
||||
EXCLUDE_FROM_ALL
|
||||
json_render.cpp
|
||||
$<TARGET_OBJECTS:UTIL>)
|
||||
|
||||
target_link_libraries(json-render-bench
|
||||
osrm
|
||||
${BOOST_BASE_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${TBB_LIBRARIES}
|
||||
${MAYBE_SHAPEFILE})
|
||||
|
||||
add_executable(alias-bench
|
||||
EXCLUDE_FROM_ALL
|
||||
${AliasBenchmarkSources}
|
||||
@ -41,6 +53,8 @@ target_link_libraries(alias-bench
|
||||
${TBB_LIBRARIES}
|
||||
${MAYBE_SHAPEFILE})
|
||||
|
||||
|
||||
|
||||
add_executable(packedvector-bench
|
||||
EXCLUDE_FROM_ALL
|
||||
${PackedVectorBenchmarkSources}
|
||||
@ -58,4 +72,5 @@ add_custom_target(benchmarks
|
||||
rtree-bench
|
||||
packedvector-bench
|
||||
match-bench
|
||||
json-render-bench
|
||||
alias-bench)
|
||||
|
||||
141
src/benchmarks/json_render.cpp
Normal file
141
src/benchmarks/json_render.cpp
Normal file
@ -0,0 +1,141 @@
|
||||
|
||||
#include "util/json_container.hpp"
|
||||
#include "util/json_renderer.hpp"
|
||||
#include "util/timing_util.hpp"
|
||||
#include "osrm/json_container.hpp"
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
// #ifdef _WIN32
|
||||
// #pragma optimize("", off)
|
||||
// template <class T> void dont_optimize_away(T &&datum) { T local = datum; }
|
||||
// #pragma optimize("", on)
|
||||
// #else
|
||||
// template <class T> void dont_optimize_away(T &&datum) { asm volatile("" : "+r"(datum)); }
|
||||
// #endif
|
||||
|
||||
// template <std::size_t num_rounds, std::size_t num_entries, typename VectorT>
|
||||
// auto measure_random_access()
|
||||
// {
|
||||
// std::vector<std::size_t> indices(num_entries);
|
||||
// std::iota(indices.begin(), indices.end(), 0);
|
||||
// std::mt19937 g(1337);
|
||||
// std::shuffle(indices.begin(), indices.end(), g);
|
||||
|
||||
// VectorT vector(num_entries);
|
||||
|
||||
// TIMER_START(write);
|
||||
// for (auto round : util::irange<std::size_t>(0, num_rounds))
|
||||
// {
|
||||
// for (auto idx : util::irange<std::size_t>(0, num_entries))
|
||||
// {
|
||||
// vector[indices[idx]] = idx + round;
|
||||
// }
|
||||
// }
|
||||
// TIMER_STOP(write);
|
||||
|
||||
// TIMER_START(read);
|
||||
// auto sum = 0;
|
||||
// for (auto round : util::irange<std::size_t>(0, num_rounds))
|
||||
// {
|
||||
// sum = round;
|
||||
// for (auto idx : util::irange<std::size_t>(0, num_entries))
|
||||
// {
|
||||
// sum += vector[indices[idx]];
|
||||
// }
|
||||
// dont_optimize_away(sum);
|
||||
// }
|
||||
// TIMER_STOP(read);
|
||||
|
||||
// return Measurement{TIMER_MSEC(write), TIMER_MSEC(read)};
|
||||
// }
|
||||
|
||||
int main(int, char **)
|
||||
{
|
||||
using namespace osrm;
|
||||
|
||||
const auto location = json::Array{{{7.437070}, {43.749248}}};
|
||||
|
||||
json::Object reference{
|
||||
{{"code", "Ok"},
|
||||
{"waypoints",
|
||||
json::Array{{json::Object{{{"name", "Boulevard du Larvotto"},
|
||||
{"location", location},
|
||||
{"distance", round(0.137249 * 1000000)},
|
||||
{"hint", ""}}},
|
||||
json::Object{{{"name", "Boulevard du Larvotto"},
|
||||
{"location", location},
|
||||
{"distance", round(0.137249 * 1000000)},
|
||||
{"hint", ""}}}}}},
|
||||
{"routes",
|
||||
json::Array{{json::Object{
|
||||
{{"distance", 0.},
|
||||
{"duration", 0.},
|
||||
{"weight", 0.},
|
||||
{"weight_name", "routability"},
|
||||
{"geometry", "yw_jGupkl@??"},
|
||||
{"legs",
|
||||
json::Array{{json::Object{
|
||||
{{"distance", 0.},
|
||||
{"duration", 0.},
|
||||
{"weight", 0.},
|
||||
{"summary", "Boulevard du Larvotto"},
|
||||
{"steps",
|
||||
json::Array{{{json::Object{{{"duration", 0.},
|
||||
{"distance", 0.},
|
||||
{"weight", 0.},
|
||||
{"geometry", "yw_jGupkl@??"},
|
||||
{"name", "Boulevard du Larvotto"},
|
||||
{"mode", "driving"},
|
||||
{"driving_side", "right"},
|
||||
{"maneuver",
|
||||
json::Object{{
|
||||
{"location", location},
|
||||
{"bearing_before", 0},
|
||||
{"bearing_after", 238},
|
||||
{"type", "depart"},
|
||||
}}},
|
||||
{"intersections",
|
||||
json::Array{{json::Object{
|
||||
{{"location", location},
|
||||
{"bearings", json::Array{{238}}},
|
||||
{"entry", json::Array{{json::True()}}},
|
||||
{"out", 0}}}}}}}}},
|
||||
|
||||
json::Object{{{"duration", 0.},
|
||||
{"distance", 0.},
|
||||
{"weight", 0.},
|
||||
{"geometry", "yw_jGupkl@"},
|
||||
{"name", "Boulevard du Larvotto"},
|
||||
{"mode", "driving"},
|
||||
{"driving_side", "right"},
|
||||
{"maneuver",
|
||||
json::Object{{{"location", location},
|
||||
{"bearing_before", 238},
|
||||
{"bearing_after", 0},
|
||||
{"type", "arrive"}}}},
|
||||
{"intersections",
|
||||
json::Array{{json::Object{
|
||||
{{"location", location},
|
||||
{"bearings", json::Array{{58}}},
|
||||
{"entry", json::Array{{json::True()}}},
|
||||
{"in", 0}}}}}}
|
||||
|
||||
}}}}}}}}}}}}}}}}};
|
||||
json::Array arr;
|
||||
for (size_t index = 0; index < 256; ++index) {
|
||||
arr.values.push_back(reference);
|
||||
}
|
||||
json::Object obj{{{"arr", arr}}};
|
||||
std::string ss;
|
||||
TIMER_START(create_object);
|
||||
json::render(ss, obj);
|
||||
//std::string s{ss.begin(), ss.end()};
|
||||
TIMER_STOP(create_object);
|
||||
std::cout << TIMER_MSEC(create_object) << "ms"
|
||||
<< std::endl;
|
||||
// (void)s;
|
||||
// std::cerr << ss << "\n";
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user