Optimize memory#75
Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #75 +/- ##
==========================================
+ Coverage 57.81% 63.52% +5.70%
==========================================
Files 70 76 +6
Lines 6427 7418 +991
==========================================
+ Hits 3716 4712 +996
+ Misses 2424 2393 -31
- Partials 287 313 +26
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This removes the need to declare what "interface" or type a module provides to the module system, thus being more in line with the "Go way" of implicit interfaces. The module system looks for a module with a compatible type. If multiple modules implement the same type, the module system chooses the one that was added to the builder last.
If we are going to use a view context for voting, then we need to be in the correct view before we start the voting process. Otherwise, the vote could be canceled by the following view change.
This decouples contexts from the synchronizer and makes them listen for events on the event loop.
This commit aims to make the eventloop more flexible by allowing both async and sync handlers again. Handlers can be made async by passing a RunAsync handler option. Furthermore, observers have been replaced by a WithPriority handler option.
Smart contexts that listen for timeouts
This avoids many memory allocations
e9ffe83 to
a0f05ea
Compare
|
@johningve Could you resolve the conflicts in this PR before I review it? |
|
I looked at this, and I like many of the changes here independent of the memory improvement gained. It probably does not make sense to try to salvage this PR as is, but perhaps we should start a new PR and redo this on top of master. @johningve Can you recall why this never moved out of draft mode? |
Various memory optimizations.
Before:
profile (1).pb.gz
After:
profile.pb.gz