Performance #31
PatrickRitchie
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
In the latest v0.6.0 release, performance was a major focus. In previous releases, I noticed some sub-par performance and higher than necessary CPU and memory usage so I went through the entire code base to profile and refactor in order to improve.
The performance obtained was better than expected as CPU usage remains low (typically under 1% under load and under 0.5% idle) and memory usage is much better. Memory usage peaks around 60MB Working Set and around 30MB Private Memory with a full buffer of 150,000 observations. A custom garbage collector class was implemented to be force GC.Collect() when large sample requests are sent (>5000 samples). Although this is not typically recommended, it is used sparingly and does help keep the memory usage down which can be important when run on systems with minimal resources.
HTTP Request timing was also improved. Most Probe, Current, and Asset requests return in under 3ms. Sample requests vary, but most ~20,000 sample requests returned in under 100ms.
Any benchmark results or additional testing is welcome. Please let me know if anyone has any issues with performance and I will make sure to address them.
Thanks,
-Patrick
Beta Was this translation helpful? Give feedback.
All reactions