diff options
Diffstat (limited to 'benchmark/parse')
-rw-r--r-- | benchmark/parse/tile_mask.benchmark.cpp | 38 | ||||
-rw-r--r-- | benchmark/parse/vector_tile.benchmark.cpp | 28 |
2 files changed, 66 insertions, 0 deletions
diff --git a/benchmark/parse/tile_mask.benchmark.cpp b/benchmark/parse/tile_mask.benchmark.cpp new file mode 100644 index 0000000000..79ab685c28 --- /dev/null +++ b/benchmark/parse/tile_mask.benchmark.cpp @@ -0,0 +1,38 @@ +#include <benchmark/benchmark.h> + +#include <mbgl/algorithm/update_tile_masks.hpp> + +using namespace mbgl; + +class MaskedRenderable { +public: + MaskedRenderable(const UnwrappedTileID& id_, TileMask&& mask_) + : id(id_), mask(std::move(mask_)) { + } + + UnwrappedTileID id; + TileMask mask; + bool used = true; + + void setMask(TileMask&& mask_) { + mask = std::move(mask_); + } +}; + +static void TileMaskGeneration(benchmark::State& state) { + std::vector<MaskedRenderable> renderables = { + MaskedRenderable{ UnwrappedTileID{ 12, 1028, 1456 }, {} }, + MaskedRenderable{ UnwrappedTileID{ 13, 2056, 2912 }, {} }, + MaskedRenderable{ UnwrappedTileID{ 13, 2056, 2913 }, {} }, + MaskedRenderable{ UnwrappedTileID{ 14, 4112, 5824 }, {} }, + MaskedRenderable{ UnwrappedTileID{ 14, 4112, 5827 }, {} }, + MaskedRenderable{ UnwrappedTileID{ 14, 4114, 5824 }, {} }, + MaskedRenderable{ UnwrappedTileID{ 14, 4114, 5825 }, {} }, + }; + + while (state.KeepRunning()) { + algorithm::updateTileMasks<MaskedRenderable>({ renderables.begin(), renderables.end() }); + } +} + +BENCHMARK(TileMaskGeneration); diff --git a/benchmark/parse/vector_tile.benchmark.cpp b/benchmark/parse/vector_tile.benchmark.cpp new file mode 100644 index 0000000000..24623dbda7 --- /dev/null +++ b/benchmark/parse/vector_tile.benchmark.cpp @@ -0,0 +1,28 @@ +#include <benchmark/benchmark.h> + +#include <mbgl/tile/vector_tile_data.hpp> +#include <mbgl/util/io.hpp> + +using namespace mbgl; + +static void Parse_VectorTile(benchmark::State& state) { + auto data = std::make_shared<std::string>(util::read_file("test/fixtures/api/assets/streets/10-163-395.vector.pbf")); + + while (state.KeepRunning()) { + std::size_t length = 0; + VectorTileData tile(data); + for (const auto& name : tile.layerNames()) { + if (auto layer = tile.getLayer(name)) { + const std::size_t count = layer->featureCount(); + for (std::size_t i = 0; i < count; i++) { + if (auto feature = layer->getFeature(i)) { + length += feature->getGeometries().size(); + length += feature->getProperties().size(); + } + } + } + } + } +} + +BENCHMARK(Parse_VectorTile); |