summaryrefslogtreecommitdiff
path: root/platform/ios/benchmark/MBXBenchViewController.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/benchmark/MBXBenchViewController.mm')
-rw-r--r--platform/ios/benchmark/MBXBenchViewController.mm151
1 files changed, 0 insertions, 151 deletions
diff --git a/platform/ios/benchmark/MBXBenchViewController.mm b/platform/ios/benchmark/MBXBenchViewController.mm
deleted file mode 100644
index 901eb07cd1..0000000000
--- a/platform/ios/benchmark/MBXBenchViewController.mm
+++ /dev/null
@@ -1,151 +0,0 @@
-#import "MBXBenchViewController.h"
-#import "MBXBenchAppDelegate.h"
-#import "MGLMapView_Private.h"
-
-#include "locations.hpp"
-
-#include <chrono>
-
-@interface MBXBenchViewController () <MGLMapViewDelegate>
-
-@property (nonatomic) MGLMapView *mapView;
-
-@end
-
-@implementation MBXBenchViewController
-
-#pragma mark - Setup
-
-+ (void)initialize
-{
- if (self == [MBXBenchViewController class])
- {
- [[NSUserDefaults standardUserDefaults] registerDefaults:@{
- @"MBXUserTrackingMode": @(MGLUserTrackingModeNone),
- @"MBXShowsUserLocation": @NO,
- @"MBXDebug": @NO,
- }];
- }
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Use a local style and local assets if they’ve been downloaded.
- NSURL *tileSourceURL = [[NSBundle mainBundle] URLForResource:@"mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v6" withExtension:nil subdirectory:@"tiles"];
- NSURL *url = [NSURL URLWithString:tileSourceURL ? @"asset://styles/streets-v8.json" : @"mapbox://styles/mapbox/streets-v8"];
- self.mapView = [[MGLMapView alloc] initWithFrame:self.view.bounds styleURL:url];
- self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- self.mapView.delegate = self;
- self.mapView.zoomEnabled = NO;
- self.mapView.scrollEnabled = NO;
- self.mapView.rotateEnabled = NO;
- self.mapView.userInteractionEnabled = YES;
- self.mapView.preferredFramesPerSecond = MGLMapViewPreferredFramesPerSecondMaximum;
-
- [self.view addSubview:self.mapView];
-}
-
-- (void)viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
-
- [self startBenchmarkIteration];
-}
-
-size_t idx = 0;
-enum class State { None, WaitingForAssets, WarmingUp, Benchmarking } state = State::None;
-int frames = 0;
-std::chrono::steady_clock::time_point started;
-std::vector<std::pair<std::string, double>> result;
-
-static const int warmupDuration = 20; // frames
-static const int benchmarkDuration = 200; // frames
-
-- (void)startBenchmarkIteration
-{
- if (mbgl::bench::locations.size() > idx) {
- const auto& location = mbgl::bench::locations[idx];
- [self.mapView setCenterCoordinate:CLLocationCoordinate2DMake(location.latitude, location.longitude) zoomLevel:location.zoom animated:NO];
- self.mapView.direction = location.bearing;
- state = State::WaitingForAssets;
- NSLog(@"Benchmarking \"%s\"", location.name.c_str());
- NSLog(@"- Loading assets...");
- } else {
- // Do nothing. The benchmark is completed.
- NSLog(@"Benchmark completed.");
- NSLog(@"Result:");
- double totalFPS = 0;
- size_t colWidth = 0;
- for (const auto& row : result) {
- colWidth = std::max(row.first.size(), colWidth);
- }
- for (const auto& row : result) {
- NSLog(@"| %-*s | %4.1f fps |", int(colWidth), row.first.c_str(), row.second);
- totalFPS += row.second;
- }
- NSLog(@"Total FPS: %4.1f", totalFPS);
- NSLog(@"Average FPS: %4.1f", totalFPS / result.size());
- exit(0);
- }
-}
-
-- (void)mapViewDidFinishRenderingFrame:(MGLMapView *)mapView fullyRendered:(__unused BOOL)fullyRendered
-{
- if (state == State::Benchmarking)
- {
- frames++;
- if (frames >= benchmarkDuration)
- {
- state = State::None;
-
- // Report FPS
- const auto duration = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now() - started).count() ;
- const auto fps = double(frames * 1e6) / duration;
- result.emplace_back(mbgl::bench::locations[idx].name, fps);
- NSLog(@"- FPS: %.1f", fps);
-
- // Start benchmarking the next location.
- idx++;
- [self startBenchmarkIteration];
- } else {
- [mapView setNeedsRerender];
- }
- return;
- }
-
- else if (state == State::WarmingUp)
- {
- frames++;
- if (frames >= warmupDuration)
- {
- frames = 0;
- state = State::Benchmarking;
- started = std::chrono::steady_clock::now();
- NSLog(@"- Benchmarking for %d frames...", benchmarkDuration);
- }
- [mapView setNeedsRerender];
- return;
- }
-
- else if (state == State::WaitingForAssets)
- {
- if ([mapView isFullyLoaded])
- {
- // Start the benchmarking timer.
- state = State::WarmingUp;
- [self.mapView didReceiveMemoryWarning];
- NSLog(@"- Warming up for %d frames...", warmupDuration);
- [mapView setNeedsRerender];
- }
- return;
- }
-}
-
-- (NSUInteger)supportedInterfaceOrientations
-{
- return UIInterfaceOrientationMaskLandscape;
-}
-
-@end