title: Enumerator::Lazy and Garbage Collection
body: <p>I am using Ruby's built in CSV parser against large files. </p>
  
  <p>My approach is to separate the parsing with the rest of the logic. To achieve this I am creating an array of hashes. I also want to take advantage of Ruby's <code>Enumerator:: Lazy</code> to prevent loading the entire file in memory. </p>
  
  <p>My question is, when I'm actually iterating through the array of hashes, does the Garbage collector actually clean things up as I go or will it only clean up when the entire array can be cleaned up, essentially still allowing the entire value in memory still?</p>
  
  <p>I'm not asking if it will clean each element as I finish with it, only if it will clean it before the entire enum is actually evaluated.</p>