DEV Community

Cover image for 1M End2End: WJb vs Quartz vs Hangfire
Oleksandr Viktor
Oleksandr Viktor

Posted on

1M End2End: WJb vs Quartz vs Hangfire

Large Scale End-to-End Benchmark

Real-world processing benchmark using:

1,000,000 jobs
1 worker/thread
In-memory storage
Enter fullscreen mode Exit fullscreen mode

Benchmark Environment

.NET 10.0
Windows 11
Intel Core i7-12700K
Enter fullscreen mode Exit fullscreen mode

Workload

public sealed record EchoPayload(int Id, string Name);
Enter fullscreen mode Exit fullscreen mode

Job implementation:

Interlocked.Increment(ref Completed);
Enter fullscreen mode Exit fullscreen mode

Results

Framework Time Jobs/sec Memory
WJb 4.80 sec 208,344 983.72 MB
Quartz.NET 23.84 sec 41,940 1,292.79 MB
Hangfire 299.00 sec 3,344 2,518.56 MB

Throughput

WJb       208,344 jobs/sec
Quartz     41,940 jobs/sec
Hangfire    3,344 jobs/sec
Enter fullscreen mode Exit fullscreen mode

Processing Time

1,000,000 Jobs

WJb          4.80 sec
Quartz      23.84 sec
Hangfire   299.00 sec
Enter fullscreen mode Exit fullscreen mode

Source Code & Reproducibility

The complete large-scale benchmark suite, including all benchmark runners and source code, is available here:

🔗 https://github.com/UkrGuru/WJb.Demo/tree/main/benchmark/LargeScale

Summary

  • WJb processed 1,000,000 jobs approximately 5× faster than Quartz.NET.
  • WJb processed 1,000,000 jobs approximately 62× faster than Hangfire.
  • WJb used approximately 31% less memory than Quartz.NET.
  • WJb used approximately 61% less memory than Hangfire.

Notes

  • In-memory storage only.
  • Single worker/thread for all frameworks.
  • End-to-end execution includes enqueue, scheduling, execution, and completion.
  • Results were measured using standalone console applications.

Top comments (0)