-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cache inbound group sessions when decrypting #1566
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This A/B performance testing is really great!
I was not comfortable with the word cancel
at first. I thought it was for abortion. This is why I asked for some renaming.
MatrixSDK/MXSDKOptions.h
Outdated
Enable performance optimization where inbound group sessions are cached between decryption of events | ||
rather than fetched from the store every time. | ||
|
||
@remark The value is set randomly between YES / NO to perform a very basic A/B test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@remark The value is set randomly between YES / NO to perform a very basic A/B test | |
@remark By default, the value is set randomly between YES / NO to perform a very basic A/B test |
@@ -20,6 +20,12 @@ | |||
#import "MXCallHangupEventContent.h" | |||
#import "MXTaskProfile.h" | |||
|
|||
/** | |||
Callback function to cancel ongoing duration tracking |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Callback function to cancel ongoing duration tracking | |
Callback function to finish ongoing duration tracking |
@@ -46,6 +52,21 @@ NS_ASSUME_NONNULL_BEGIN | |||
*/ | |||
- (void)trackDuration:(NSInteger)milliseconds name:(MXTaskProfileName)name units:(NSUInteger)units; | |||
|
|||
/** | |||
Start tracking the duration of a task and manually cancel when finished using the return handle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Start tracking the duration of a task and manually cancel when finished using the return handle | |
Start tracking the duration of a task and manually stop when finished using the return handle |
Codecov Report
@@ Coverage Diff @@
## develop #1566 +/- ##
===========================================
+ Coverage 45.16% 45.22% +0.05%
===========================================
Files 521 521
Lines 84960 85009 +49
Branches 37510 37534 +24
===========================================
+ Hits 38373 38445 +72
+ Misses 45486 45459 -27
- Partials 1101 1105 +4
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Improve megolm event decryption behaviour by caching rather than re-fetching inbounds group sessions from the store. In anecdotal comparison on a single device this leads to 5x - 10x performance improvement.
In order to observe the impact of this improvement more precisely, the following changes are made:
Note that the new performance tracking method conflicts with existing
MXProfiler
which does the time tracking manually, whereas Sentry handles performance measurements internally. This ambiguity will be resolved in a future PROnce in Sentry, the following dashboards can be constructed from these events: