kidtracker icon indicating copy to clipboard operation
kidtracker copied to clipboard

Performance improvement using reactive approach

Open Arooba-git opened this issue 1 year ago • 0 comments

Hello 🙂,

I wanted to express my gratitude for developing and maintaining this web app, as well as for providing such detailed and easy-to-follow instructions. By adhering to your guidelines, we were able to run the project successfully.

With the rising interest in Java application development—particularly in areas like reactive programming and virtual threads—we've been evaluating open-source projects to compare performance using three approaches: imperative, reactive, and virtual threads. Our analysis focused on metrics such as CPU and memory usage, as well as request concurrency.

Thanks to your comprehensive documentation, we were able to test your project across all three paradigms. The findings demonstrated significant performance gains with the reactive programming model, as highlighted in the table below:

Metric Original Reactive
Memory Usage (MB) 3023.7 667.5
CPU Usage (%) 7.7 0
Throughput (requests/sec) 3877.6 13743.1
Latency (longest processing time) 3453.3s 7873.6s
Requests Passed (%) 40.8 79.3

As part of this research, we’ve also developed a simplified version of your project using WebFlux, which features a single demonstration endpoint. You can check out this demo and compare its performance with the original project here.

Profiler used: JMeter

Best regards.

Arooba-git avatar Sep 11 '24 21:09 Arooba-git