contribsys / faktory

Language-agnostic persistent background job server
https://contribsys.com/faktory/
Other
5.78k stars 230 forks source link

Create benchmark suite #400

Open mperham opened 2 years ago

mperham commented 2 years ago

We need a set of benchmarks which can exercise various features and provide some basic performance numbers.

rocktavious commented 1 year ago

Hey @mperham - I recently learned how to benchmark golang code because i needed to rewrite a section of project and wanted to see how I increased (or reduced) the performance.

I would like to try and take on this issue to continue to hone my skills on writing benchmark tests. I have some questions for you before I go off and try to write a PR.

  1. Is this an exhaustive list of the things you'd like to see (i'm fairly new to faktory and we are trying to implement at my day job)
  2. What is the end goal with this - just to have benchmarks run on the main branch after release? Generate graphs of faktory vs sidekiq? something i'm not considering?
  3. Are you ok with this being golang benchmark tests or did you want something else?

Looking forward to your thoughts.

mperham commented 1 year ago

Great questions, this issue is just meant to be a starting point. I'm happy with any set of non-trivial benchmarks. Anything will provide a starting point and baseline for future changes.

  1. Definitely not exhaustive (e.g. we could add loading testing web) but just a few ideas.
  2. Get a baseline for performance so we can improve or find regressions in core functionality
  3. testing.B is a perfectly fine start.

The last item (batches) requires conditional support for Faktory Enterprise so it's also a nice to have. We can collaborate and I can add that one if you don't have Enterprise access.