Large Scale End-to-End Benchmark
Real-world processing benchmark using:
1,000,000 jobs
1 worker/thread
In-memory storage
Benchmark Environment
.NET 10.0
Windows 11
Intel Core i7-12700K
Workload
public sealed record EchoPayload(int Id, string Name);
Job implementation:
Interlocked.Increment(ref Completed);
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
Processing Time
1,000,000 Jobs
WJb 4.80 sec
Quartz 23.84 sec
Hangfire 299.00 sec
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)