From 2eb3ec6d0cfe59385e3391a669ebff8d1d5270f3 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Sun, 23 Sep 2018 16:52:30 -0600 Subject: [PATCH] benchmark migration --- .../migrations/OWS110SortIdMigration.swift | 8 ++++++++ SignalMessaging/utils/Bench.swift | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/SignalMessaging/environment/migrations/OWS110SortIdMigration.swift b/SignalMessaging/environment/migrations/OWS110SortIdMigration.swift index a65d54901..cefb8dc76 100644 --- a/SignalMessaging/environment/migrations/OWS110SortIdMigration.swift +++ b/SignalMessaging/environment/migrations/OWS110SortIdMigration.swift @@ -13,7 +13,15 @@ class OWS110SortIdMigration: OWSDatabaseMigration { override public func runUp(completion: @escaping OWSDatabaseMigrationCompletion) { Logger.debug("") + BenchAsync(title: "Sort Migration") { completeBenchmark in + self.doMigration { + completeBenchmark() + completion() + } + } + } + private func doMigration(completion: @escaping OWSDatabaseMigrationCompletion) { // TODO batch this? self.dbReadWriteConnection().readWrite { transaction in diff --git a/SignalMessaging/utils/Bench.swift b/SignalMessaging/utils/Bench.swift index e11e4622b..06829833a 100644 --- a/SignalMessaging/utils/Bench.swift +++ b/SignalMessaging/utils/Bench.swift @@ -4,7 +4,16 @@ import Foundation -public func BenchAsync(title: String, block: (() -> Void) -> Void) { +/// Benchmark async code by calling the passed in block parameter when the work +/// is done. +/// +/// BenchAsync(title: "my benchmark") { completeBenchmark in +/// foo { +/// completeBenchmark() +/// fooCompletion() +/// } +/// } +public func BenchAsync(title: String, block: (@escaping () -> Void) -> Void) { let startTime = CFAbsoluteTimeGetCurrent() block {