From af399c6fbbc5c4970d7d7c15123918a767ffff89 Mon Sep 17 00:00:00 2001 From: Chris Bobbe Date: Wed, 27 Sep 2023 02:44:06 -0700 Subject: [PATCH] dev demo: stopwatching --- lib/model/store.dart | 12 ++++++++++++ lib/model/unreads.dart | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/model/store.dart b/lib/model/store.dart index 28898fc8fd..5a914a5615 100644 --- a/lib/model/store.dart +++ b/lib/model/store.dart @@ -309,23 +309,35 @@ class PerAccountStore extends ChangeNotifier { for (final view in _messageListViews) { view.maybeAddMessage(event.message); } + final stopwatch = Stopwatch()..start(); unreads.handleMessageEvent(event); + final t = (stopwatch..stop()).elapsed; + assert(debugLog('handleMessageEvent time: ${t.inMilliseconds}ms')); } else if (event is UpdateMessageEvent) { assert(debugLog("server event: update_message ${event.messageId}")); for (final view in _messageListViews) { view.maybeUpdateMessage(event); } + final stopwatch = Stopwatch()..start(); unreads.handleUpdateMessageEvent(event); + final t = (stopwatch..stop()).elapsed; + assert(debugLog('handleUpdateMessageEvent time: ${t.inMilliseconds}ms')); } else if (event is DeleteMessageEvent) { assert(debugLog("server event: delete_message ${event.messageIds}")); // TODO handle in message lists + final stopwatch = Stopwatch()..start(); unreads.handleDeleteMessageEvent(event); + final t = (stopwatch..stop()).elapsed; + assert(debugLog('handleDeleteMessageEvent time: ${t.inMilliseconds}ms')); } else if (event is UpdateMessageFlagsEvent) { assert(debugLog("server event: update_message_flags/${event.op} ${event.flag.toJson()}")); for (final view in _messageListViews) { view.maybeUpdateMessageFlags(event); } + final stopwatch = Stopwatch()..start(); unreads.handleUpdateMessageFlagsEvent(event); + final t = (stopwatch..stop()).elapsed; + assert(debugLog('handleUpdateMessageFlagsEvent time: ${t.inMilliseconds}ms')); } else if (event is ReactionEvent) { assert(debugLog("server event: reaction/${event.op}")); for (final view in _messageListViews) { diff --git a/lib/model/unreads.dart b/lib/model/unreads.dart index 5d4cd1471b..eaf84aadfb 100644 --- a/lib/model/unreads.dart +++ b/lib/model/unreads.dart @@ -39,6 +39,8 @@ import 'narrow.dart'; // messages and refresh [mentions] (see [mentions] dartdoc). class Unreads extends ChangeNotifier { factory Unreads({required UnreadMessagesSnapshot initial, required selfUserId}) { + final stopwatch = Stopwatch()..start(); + final streams = >>{}; final dms = >{}; final mentions = Set.of(initial.mentions); @@ -60,13 +62,18 @@ class Unreads extends ChangeNotifier { dms[narrow] = QueueList.from(unreadHuddleSnapshot.unreadMessageIds); } - return Unreads._( + final result = Unreads._( streams: streams, dms: dms, mentions: mentions, oldUnreadsMissing: initial.oldUnreadsMissing, selfUserId: selfUserId, ); + + final t = (stopwatch..stop()).elapsed; + assert(debugLog('Unreads constructor time: ${t.inMilliseconds}ms')); + + return result; } Unreads._({