-
Notifications
You must be signed in to change notification settings - Fork 102
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
Poor performance compared to baseline #635
Comments
Thanks for taking the time to do this! We haven't really focused much on performance so far but I think it's something we should look to do in the future. Adding benchmarks to this repo would be a good start - how would you feel about opening a PR? |
The benchmarks are coming from a |
I’ll need to look in more detail to give a specific answer to that - I’ll try to get to it soon. |
Just wanted to post a small update here. We recently had an issue with Env: Scala 2.13.8, fs2-kafka 3.0.0-M9, Apple M1 Max, 32Gb RAM, single Kafka broker running in docker. Some results that I've managed to achieve:
So in general it looks like current |
I have recently been having some issues with performance, so I decided to make a minimal application and compare it to some benchmark.
TL;DR - I'm seeing ~10%-12% efficiency when using fs2-kafka (wrt benchmark).
Sample application
https://github.com/drewboardman/fs2-kafka-perf
Instructions
Kafka provides a command line interface to performance test against your topic. Please see the sample application for how to install and use provided scripts to set up docker and the benchmark tests.
Results
Using the test-application linked in the github repo, here are the results I
got:
perf-test.sh
benchmarksfs2-kafka
application performanceAs you can see, the performance is quite throttled with respect to the kafka
performance test. Chunking was, by far, the largest increase in performance - however I'm still not close to the benchmark values.
Circe as a contributing factor
It's possible that the serialization step is contributing to the performance
issues. In this application I'm using
circe
to do my serialization and JSONand as protocol. Here are averages over 4x1_000_000 runs using only circe (no
kafka at all).
It looks like about 75% of the time is still contributed by fs2-kafka.
The text was updated successfully, but these errors were encountered: