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

Structify the Framing.Impl methods #962

Merged
merged 3 commits into from
Jun 10, 2021

Conversation

bollhals
Copy link
Contributor

@bollhals bollhals commented Oct 28, 2020

Proposed Changes

The main focus of this change was to change all classes of Framing.Impl to be structs.

Types of Changes

  • Bug fix (non-breaking change which fixes issue #NNNN)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • Documentation improvements (corrections, new content, etc)
  • Cosmetic change (whitespace, formatting, etc)

Checklist

  • I have read the CONTRIBUTING.md document
  • I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq)
  • All tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • Any dependent changes have been merged and published in related repositories

Further Comments

Allocation before (Master)
image

Allocations now
image

Side effect is a reduction of the dll size of 11KB
image

Performance is hard to measure, the test app we otherwise use won't show a meaningful difference, so I used to benchmarks provided by @JanEggers:

2nd Line is always this PR

New Connection with 10000 messages

Method Mean Error StdDev Ratio Gen 0 Gen 1 Gen 2 Allocated
Publish_Hello_World 190.6 ms 3.71 ms 6.49 ms 1.00 1000.0000 333.3333 - 4.97 MB
Publish_Hello_World 187.8 ms 3.75 ms 3.86 ms 1.00 666.6667 - - 4.12 MB

Existing Connection but with 1000 messages

Method Mean Error StdDev Ratio Gen 0 Gen 1 Gen 2 Allocated
Publish_Hello_World 22.37 ms 0.429 ms 0.511 ms 1.00 93.7500 - - 508.24 KB
Publish_Hello_World 21.41 ms 0.408 ms 0.362 ms 1.00 62.5000 - - 420.11 KB

Copy link
Contributor

@stebet stebet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like the changes in this PR :) It simplifies a lot of code.

@bollhals
Copy link
Contributor Author

I really like the changes in this PR :) It simplifies a lot of code.

Thanks for your review!

@bollhals
Copy link
Contributor Author

My plan would be to merge this one before the first 8.0 PRs, as this might be also relevant for backporting to 6.x which will be simpler before 8.0 PR hitting master.

I'll update the code in the next days and trying to get this in a mergable state.

@bollhals bollhals force-pushed the structify branch 2 times, most recently from 035d735 to 9fe6d1c Compare December 21, 2020 00:48
@bollhals
Copy link
Contributor Author

My plan would be to merge this one before the first 8.0 PRs, as this might be also relevant for backporting to 6.x which will be simpler before 8.0 PR hitting master.

I'll update the code in the next days and trying to get this in a mergable state.

Done, rebased to master and fixed all failing tests.

@bollhals bollhals force-pushed the structify branch 2 times, most recently from 3c6d9ef to c894404 Compare December 25, 2020 00:55
@stebet
Copy link
Contributor

stebet commented Dec 27, 2020

Will try to review this soon. A bit busy with a newborn a.t.m :)

@bollhals
Copy link
Contributor Author

Will try to review this soon. A bit busy with a newborn a.t.m :)

congrats =)

@bollhals
Copy link
Contributor Author

rebased to master. this is ready for review

@bollhals
Copy link
Contributor Author

bollhals commented Mar 4, 2021

Updated with latest master and ran new benchmarks & updated initial post.

@bollhals
Copy link
Contributor Author

bollhals commented Mar 9, 2021

@stebet @michaelklishin Can we get this reviewed? Otherwise this is going to end up in another conflicting state with master due to the next PR (like #1024).

@bollhals bollhals force-pushed the structify branch 2 times, most recently from 431fa3e to 3e19157 Compare March 18, 2021 21:26
@bollhals
Copy link
Contributor Author

Rebased again against master and resolved all conflicts. Would you mind taking a look so we finally can get this done? @stebet @michaelklishin

@stebet
Copy link
Contributor

stebet commented Mar 19, 2021

Rebased again against master and resolved all conflicts. Would you mind taking a look so we finally can get this done? @stebet @michaelklishin

Will do

@bollhals
Copy link
Contributor Author

rebased to master again. ready for final reviews

@bollhals
Copy link
Contributor Author

ping

@bollhals
Copy link
Contributor Author

bollhals commented May 4, 2021

@michaelklishin Can we finish this PR please?

@bollhals
Copy link
Contributor Author

🚨 Anything I can help to get this done? 🚨

PS: What is the plan for 7.0?

@stebet
Copy link
Contributor

stebet commented May 18, 2021

After the latest reviews I'm all good for my part :)

@bollhals
Copy link
Contributor Author

Who could I ping to get this done? :) feeling a bit left out here

@bollhals bollhals mentioned this pull request Jun 9, 2021
@michaelklishin michaelklishin merged commit 28092df into rabbitmq:master Jun 10, 2021
@michaelklishin
Copy link
Member

michaelklishin commented Jun 10, 2021

@bollhals sorry, there were significant changes on our team in the last few months (mostly positive) and .NET client has slipped under the radar. Nearly all focus is on shipping RabbitMQ 3.9 and a commercial product based on it.

@bollhals bollhals deleted the structify branch June 10, 2021 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants