Comments (9)
@jacobmiller22 I setup a benchmark comparison between amqprs vs lapin, and it shows amqprs performance is much better than lapin in a basic_publish case.
if you are interesting, you can check https://github.com/gftea/amqprs/actions/runs/4142767627/jobs/7163827661
from amqprs.
You can use PerfTest for baseline comparison or develop a minimalistic implementation of PerfTest (the library part).
It's a non-trivial amount of effort but Team RabbitMQ did it for .NET for similar reasons.
from amqprs.
@jacobmiller22 definitely a good proposal to go, performance engineering is never easy, but to have something better than nothing.
Thank you @michaelklishin to point out direction. Where can we access the baseline data?
from amqprs.
We don't really store baseline data, you would have to run PerfTest in your environment yourself. A basic 1 consumer, one producer, one quorum queue kind of workload would be enough to start.
from amqprs.
I take a quick look of perftest, it seem by default using java client and mainly target for server performance test.
from amqprs.
Yes but you can also use it as a library and certainly can use it to establish a baseline for your client
from amqprs.
We use https://docs.rs/criterion/latest/criterion/ @ HuggingFace for our tokenizers library :)
from amqprs.
@gftea Thanks for working on this. I was meaning to contribute, but just got caught up in some other personal stuff. Congrats on the better performance! If you have any suggestions on how to improve the test tools or any quality of life, I'd love to give it a stab.
from amqprs.
I have added 3 different benchmarking methods, I will close the ticket now considering this is to first introduction of benchmarking.
For details, see https://github.com/gftea/amqprs/blob/main/benchmarks/README.md
from amqprs.
Related Issues (20)
- FieldTable does not accept integer type HOT 3
- Implementing Prefetch for a given Queue using AsyncConsumer HOT 2
- Feature request: Support for external authentication mechanism HOT 3
- ChannelCallback::cancel() not called when server delete queue HOT 3
- Support `OpenConnectionArguments::from_url`? HOT 2
- Parsing Headers into Strings?
- Parsing Headers into Strings? HOT 3
- "channel concurrency" inconsistency between documentation & implementation HOT 1
- improvement: amqp_serde design and APIs
- Error running the publisher subsriber example. HOT 4
- Consumer immediately gets closed HOT 2
- BasicProperties: expose delivery mode (persistent vs. transient) as a boolean or enum HOT 3
- "Alternative default: queue declaration arguments HOT 1
- BasicPublishArguments: deprecate the immediate field HOT 2
- BasicConsumeArguments: rename no_ack since it is confusing HOT 3
- Address (most) clippy warnings HOT 3
- ConsumerMessage.delivery and .basic_properties should not be options HOT 2
- ExchangeDeclareArguments: exchange type is inherently an enum HOT 3
- FieldTable needs a convenience method for instantiation from a map HOT 4
- Best practices for opening channel, and prevent it from being dropped. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amqprs.