From a38104ee2294117032891faca13ca7da834beaa3 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Tue, 4 Oct 2016 18:39:54 +0300 Subject: [tests] Added benchmarks for querying for features --- benchmark/api/query.benchmark.cpp | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 benchmark/api/query.benchmark.cpp (limited to 'benchmark/api') diff --git a/benchmark/api/query.benchmark.cpp b/benchmark/api/query.benchmark.cpp new file mode 100644 index 0000000000..7fa0781450 --- /dev/null +++ b/benchmark/api/query.benchmark.cpp @@ -0,0 +1,72 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace mbgl; + +namespace { + +class QueryBenchmark { +public: + QueryBenchmark() { + NetworkStatus::Set(NetworkStatus::Status::Offline); + fileSource.setAccessToken("foobar"); + + map.setStyleJSON(util::read_file("benchmark/fixtures/api/query_style.json")); + map.setLatLngZoom({ 40.726989, -73.992857 }, 15); // Manhattan + + auto decoded = decodeImage(util::read_file("benchmark/fixtures/api/default_marker.png")); + auto image = std::make_unique(std::move(decoded), 1.0); + map.addImage("test-icon", std::move(image)); + + view.resize(1000, 1000); + + mbgl::benchmark::render(map); + } + + util::RunLoop loop; + std::shared_ptr display{ std::make_shared() }; + HeadlessView view{ display, 1 }; + DefaultFileSource fileSource{ "benchmark/fixtures/api/cache.db", "." }; + Map map{ view, fileSource, MapMode::Still }; + ScreenBox box{{ 0, 0 }, { 1000, 1000 }}; +}; + +} // end namespace + +static void API_queryRenderedFeaturesAll(::benchmark::State& state) { + QueryBenchmark bench; + + while (state.KeepRunning()) { + bench.map.queryRenderedFeatures(bench.box); + } +} + +static void API_queryRenderedFeaturesLayerFromLowDensity(::benchmark::State& state) { + QueryBenchmark bench; + + while (state.KeepRunning()) { + bench.map.queryRenderedFeatures(bench.box, {{ "testlayer" }}); + } +} + +static void API_queryRenderedFeaturesLayerFromHighDensity(::benchmark::State& state) { + QueryBenchmark bench; + + while (state.KeepRunning()) { + bench.map.queryRenderedFeatures(bench.box, {{ "road-street" }}); + } +} + +BENCHMARK(API_queryRenderedFeaturesAll); +BENCHMARK(API_queryRenderedFeaturesLayerFromLowDensity); +BENCHMARK(API_queryRenderedFeaturesLayerFromHighDensity); -- cgit v1.2.1