diff options
author | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-06-14 19:47:05 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-06-17 20:39:53 +0300 |
commit | e3fdc030f7014a8bbec3aeeb2e1dd50af3bd6b2c (patch) | |
tree | 6ccf33ce99787043e026730df541bdaeba395b58 | |
parent | 005e4a2a84b4d1e9d9825a7fe8fc8dea369ca06a (diff) | |
download | qtlocation-mapboxgl-upstream/tmpsantos-cache_resize.tar.gz |
[benchmark] Add benchmark tests for resizing the databaseupstream/tmpsantos-cache_resize
-rw-r--r-- | benchmark/storage/offline_database.benchmark.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/benchmark/storage/offline_database.benchmark.cpp b/benchmark/storage/offline_database.benchmark.cpp index be17201f33..d4db846dd8 100644 --- a/benchmark/storage/offline_database.benchmark.cpp +++ b/benchmark/storage/offline_database.benchmark.cpp @@ -5,6 +5,7 @@ #include <mbgl/storage/response.hpp> #include <mbgl/storage/sqlite3.hpp> #include <mbgl/util/string.hpp> +#include <mbgl/util/logging.hpp> #include <random> @@ -129,3 +130,67 @@ BENCHMARK_F(OfflineDatabase, GetTile)(benchmark::State& state) { assert(res != nullopt); } } + +BENCHMARK_F(OfflineDatabase, AddTilesToFullDatabase)(benchmark::State& state) { + using namespace mbgl; + + Log::setObserver(std::make_unique<Log::NullObserver>()); + db.setMaximumAmbientCacheSize(50 * 1024 * 5); + + while (state.KeepRunning()) { + const Resource ambient = Resource::tile("mapbox://AddTilesToFullDatabase" + + util::toString(state.iterations()), 1, 0, 0, 0, Tileset::Scheme::XYZ); + db.put(ambient, response); + } + + Log::removeObserver(); +} + +BENCHMARK_F(OfflineDatabase, AddTilesToDisabledDatabase)(benchmark::State& state) { + using namespace mbgl; + + auto regions = db.listRegions().value(); + if (!regions.empty()) { + db.deleteRegion(std::move(regions[0])); + } + + // Disables the ambient cache. + db.setMaximumAmbientCacheSize(0); + + while (state.KeepRunning()) { + const Resource ambient = Resource::tile("mapbox://AddTilesToFullDatabase" + + util::toString(state.iterations()), 1, 0, 0, 0, Tileset::Scheme::XYZ); + db.put(ambient, response); + } +} + +BENCHMARK_F(OfflineDatabase, GetTileFromDisabledDatabase)(benchmark::State& state) { + using namespace mbgl; + + auto regions = db.listRegions().value(); + if (!regions.empty()) { + db.deleteRegion(std::move(regions[0])); + } + + // Disables the ambient cache. + db.setMaximumAmbientCacheSize(0); + + while (state.KeepRunning()) { + auto res = db.get(Resource::tile("mapbox://tile_ambient", 1, 0, 0, 0, Tileset::Scheme::XYZ)); + assert(res == nullopt); + } +} + +BENCHMARK_F(OfflineDatabase, ResizeDatabase)(benchmark::State& state) { + uint64_t size = 25 * 1024 * 1024; + + while (state.KeepRunning()) { + db.setMaximumAmbientCacheSize(size); + + size -= 256; + + if (!size) { + size = 25 * 1024 * 1024; + } + } +} |