Skip to content
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

Reduce Multi allocations #690

Merged
merged 7 commits into from Oct 4, 2021
Merged

Reduce Multi allocations #690

merged 7 commits into from Oct 4, 2021

Conversation

jponge
Copy link
Member

@jponge jponge commented Sep 20, 2021

No description provided.

@jponge jponge linked an issue Sep 20, 2021 that may be closed by this pull request
3 tasks
@jponge
Copy link
Member Author

jponge commented Sep 20, 2021

@cescoffier Note that this is still a draft 😆

@codecov
Copy link

codecov bot commented Sep 20, 2021

Codecov Report

Merging #690 (fec1937) into main (cbfbfcf) will increase coverage by 0.20%.
The diff coverage is 76.22%.

❗ Current head fec1937 differs from pull request most recent head c98647e. Consider uploading reports for the commit c98647e to get more accurate results
Impacted file tree graph

@@             Coverage Diff              @@
##               main     #690      +/-   ##
============================================
+ Coverage     89.87%   90.07%   +0.20%     
- Complexity     2977     2993      +16     
============================================
  Files           374      374              
  Lines         11770    11791      +21     
  Branches       1476     1480       +4     
============================================
+ Hits          10578    10621      +43     
+ Misses          618      600      -18     
+ Partials        574      570       -4     
Impacted Files Coverage Δ
...tiny/operators/multi/MultiBufferWithTimeoutOp.java 74.78% <0.00%> (ø)
...lrye/mutiny/operators/multi/MultiOnItemInvoke.java 94.11% <0.00%> (ø)
...llrye/mutiny/operators/multi/MultiSkipFirstOp.java 90.90% <0.00%> (ø)
...allrye/mutiny/operators/multi/MultiSkipLastOp.java 82.75% <0.00%> (ø)
...rators/multi/overflow/MultiOnOverflowBufferOp.java 91.15% <0.00%> (ø)
...tors/multi/overflow/MultiOnOverflowKeepLastOp.java 91.30% <0.00%> (ø)
...lrye/mutiny/operators/multi/MultiSelectLastOp.java 87.50% <25.00%> (ø)
...llrye/mutiny/operators/multi/MultiCollectorOp.java 95.65% <50.00%> (ø)
...allrye/mutiny/operators/multi/MultiLastItemOp.java 88.46% <50.00%> (ø)
...tiny/operators/multi/MultiOnSubscribeInvokeOp.java 90.00% <50.00%> (ø)
... and 28 more

@jponge jponge marked this pull request as ready for review September 30, 2021 16:28
@jponge
Copy link
Member Author

jponge commented Sep 30, 2021

@cescoffier I just added a UnicastProcessor footprint reduction.

Uses volatile references and a single CaS for cancellation.
@jponge jponge added this to the 1.1.0 milestone Sep 30, 2021
@jponge jponge added the enhancement New feature or request label Sep 30, 2021
@jponge
Copy link
Member Author

jponge commented Oct 1, 2021

@cescoffier If you want to have a final look (but do not merge).
There are other places (including these classes) where we could reduce allocations, but that's already a good step and we don't have to track all of them.

@anavarr did not spot any performance hit, and he's looking at confirming allocation rates reductions.

@jponge jponge merged commit 1678607 into main Oct 4, 2021
@jponge jponge deleted the multi-alloc-reduction branch October 4, 2021 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reduce AtomicReference allocations
2 participants