Open dplyukhin opened 10 months ago
One way to reduce memory usage may be to use specialized data structures, avoiding boxing overhead. fastutil is a good place to look for existing implementations.
Another good library used by Akka is Agrona: https://github.com/real-logic/agrona
Garbage collectors should have a low memory footprint. CRGC also processes large amounts of data, and performance improves when that data is packed tightly together--see Andrew Kelley's excellent talk on data-oriented design for a primer: https://vimeo.com/649009599
This project is about profiling CRGC to find the main sources of memory overhead and finding creative ways to reduce that overhead. I have one idea about a source of overhead, and it involves hash maps!
First steps: Learn how to profile the memory usage of a JVM application. Run the profiler on some of our benchmarks, and leave a comment interpreting the results.