Currently, several problems are known when Ruby program runs under a high memory workload, including slow rates for allocating memory and program termination. We need to find out the reasons for unexpected overhead of memory operations of Ruby GenGC algorithm. The addressed problems like termination and collection data type may have relevant or irrelevant reasons behind it. Technically, the high effective and efficient garbage collection management in JRuby and Rubinius thanks to the underlying virtual machine and more modern GC algorithms. These GC algorithms are also used partly for reference in Ruby GenGC. To solve the high latency problem during manipulating a big hash table with millions of key-value pairs, we aim to design a GenGC friendly data structure. We are also planning to address other issues like the multithreading conflict found in my experimental program when 8 threads ran under a high memory workload.



Yimin Zhao


  • Koichi Sasada