From ac1868882470cb3b2549c65f13cd35efb8105b74 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Wed, 2 Oct 2019 17:50:30 +0300 Subject: [core][benchmark] Add API_renderStill_multiple_sources benchmark --- benchmark/api/render.benchmark.cpp | 44 ++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) (limited to 'benchmark') diff --git a/benchmark/api/render.benchmark.cpp b/benchmark/api/render.benchmark.cpp index 305ae8ce79..f192e7d3a3 100644 --- a/benchmark/api/render.benchmark.cpp +++ b/benchmark/api/render.benchmark.cpp @@ -1,18 +1,22 @@ #include +#include #include #include #include -#include #include -#include -#include -#include #include +#include +#include +#include +#include +#include #include #include #include +#include + using namespace mbgl; namespace { @@ -94,7 +98,39 @@ static void API_renderStill_recreate_map(::benchmark::State& state) { } } +static void API_renderStill_multiple_sources(::benchmark::State& state) { + using namespace mbgl::style; + RenderBenchmark bench; + HeadlessFrontend frontend{size, pixelRatio}; + Map map{frontend, + MapObserver::nullObserver(), + MapOptions().withMapMode(MapMode::Static).withSize(size).withPixelRatio(pixelRatio), + ResourceOptions().withCachePath(cachePath).withAccessToken("foobar")}; + prepare(map); + auto& style = map.getStyle(); + const int kSourcesCount = 50; + const int kLayersCount = 50; + for (int i = 0; i < kSourcesCount; ++i) { + std::ostringstream sourceOss; + sourceOss << "GeoJSONSource" << i; + std::string sourceId{sourceOss.str()}; + auto source = std::make_unique(sourceId); + style.addSource(std::move(source)); + for (int j = 0; j < kLayersCount; ++j) { + std::ostringstream layerOss; + layerOss << sourceId << '#' << j; + auto layer = std::make_unique(layerOss.str(), sourceId); + style.addLayer(std::move(layer)); + } + } + + while (state.KeepRunning()) { + frontend.render(map); + } +} + BENCHMARK(API_renderStill_reuse_map); BENCHMARK(API_renderStill_reuse_map_formatted_labels); BENCHMARK(API_renderStill_reuse_map_switch_styles); BENCHMARK(API_renderStill_recreate_map); +BENCHMARK(API_renderStill_multiple_sources); -- cgit v1.2.1