Browse Source

Add EnteWatch for easy logging of time taken

Neeraj Gupta 2 years ago
parent
commit
75f77f279e

+ 7 - 3
lib/extensions/stop_watch.dart

@@ -1,12 +1,16 @@
 import 'package:flutter/foundation.dart';
 
-extension StopWatchExtension on Stopwatch {
+class EnteWatch extends Stopwatch {
+  final String context;
+
+  EnteWatch(this.context) : super();
+
   void log(String msg) {
-    debugPrint("$msg took ${elapsed.inMilliseconds} ms");
+    debugPrint("[$context]: $msg took ${elapsed.inMilliseconds} ms");
   }
 
   void logAndReset(String msg) {
-    debugPrint("$msg took ${elapsed.inMilliseconds} ms");
+    debugPrint("[$context]: $msg took ${elapsed.inMilliseconds} ms");
     reset();
   }
 }

+ 5 - 0
lib/services/collections_service.dart

@@ -21,6 +21,7 @@ import 'package:photos/events/collection_updated_event.dart';
 import 'package:photos/events/files_updated_event.dart';
 import 'package:photos/events/force_reload_home_gallery_event.dart';
 import 'package:photos/events/local_photos_updated_event.dart';
+import 'package:photos/extensions/stop_watch.dart';
 import 'package:photos/models/api/collection/create_request.dart';
 import 'package:photos/models/collection.dart';
 import 'package:photos/models/collection_file_item.dart';
@@ -90,12 +91,14 @@ class CollectionsService {
   // within the collection.
   Future<List<Collection>> sync() async {
     _logger.info("Syncing collections");
+    final EnteWatch watch = EnteWatch("syncCollection")..start();
     final lastCollectionUpdationTime =
         _prefs.getInt(_collectionsSyncTimeKey) ?? 0;
 
     // Might not have synced the collection fully
     final fetchedCollections =
         await _fetchCollections(lastCollectionUpdationTime);
+    watch.log("remote fetch");
     final updatedCollections = <Collection>[];
     int maxUpdationTime = lastCollectionUpdationTime;
     final ownerID = _config.getUserID();
@@ -124,10 +127,12 @@ class CollectionsService {
     }
     await _updateDB(updatedCollections);
     _prefs.setInt(_collectionsSyncTimeKey, maxUpdationTime);
+    watch.logAndReset("till DB insertion");
     final collections = await _db.getAllCollections();
     for (final collection in collections) {
       _cacheCollectionAttributes(collection);
     }
+    watch.log("collection cache refresh");
     if (fetchedCollections.isNotEmpty) {
       Bus.instance.fire(
         CollectionUpdatedEvent(

+ 2 - 1
lib/services/local_sync_service.dart

@@ -16,6 +16,7 @@ import 'package:photos/db/files_db.dart';
 import 'package:photos/events/backup_folders_updated_event.dart';
 import 'package:photos/events/local_photos_updated_event.dart';
 import 'package:photos/events/sync_status_update_event.dart';
+import 'package:photos/extensions/stop_watch.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/services/app_lifecycle_service.dart';
 import 'package:photos/services/local/local_sync_util.dart';
@@ -184,7 +185,7 @@ class LocalSyncService {
   }
 
   Future<bool> syncAll() async {
-    final stopwatch = Stopwatch()..start();
+    final stopwatch = EnteWatch("localSyncAll")..start();
     final localAssets = await getAllLocalAssets();
     _logger.info(
       "Loading allLocalAssets ${localAssets.length} took ${stopwatch.elapsedMilliseconds}ms ",