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 force-pushed the multi-alloc-reduction branch from c494649 to 30e9f79 Compare September 22, 2021 13:03
@jponge jponge force-pushed the multi-alloc-reduction branch from a0d10e4 to 97a7440 Compare September 23, 2021 16:25
@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 force-pushed the multi-alloc-reduction branch from 380be0d to 9991f17 Compare September 30, 2021 19:13
@jponge jponge force-pushed the multi-alloc-reduction branch from 3bc9b47 to 9ff9d1e Compare September 30, 2021 20:39
@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