Generational garbage collection was introduced in ruby 2 1.
Ruby garbage collection force.
The garbage collection has undergone a number of changes since ruby 2 was released in 2013.
Conversely speaking if the memory is allocated without following a certain procedure it won t be taken care of.
To preserve backward compatibility with old c extensions ruby.
Tuning approaches lourens wrote this on feb 20th 2015 9 19 am mri maintainers have put a tremendous amount of work into this is the den a publication crafted by the friendly cubs at bear metal.
Moreover it only concerned with the objects created and managed by ruby.
This post focuses on the latest released version of cruby which is 2 7.
For instance the following function will cause a memory leak even if ruby is running.
How does garbage collection work in ruby.
Ruby now garbage collects dynamically generated symbols so this vulnerability isn t an issue in the latest versions of ruby but older versions are common.
The json gem suffered from this vulnerability before ruby 2 0 0 and mr.
These include a generational garbage collector introduced in ruby 2 1 incremental garbage collection in 2 2 and compaction in 2 7.
Schneeman has some other examples of this vulnerability in his post about symbol garbage collection in ruby 2 2.
You can write tons of ruby code and never give a second thought to the fact that under the covers ruby is doing a bang up job of allocating and freeing memory for your code to use.