SyncEnumerator?

Hello,

  Just to share an experience of something that happened to me today; i wrote a
script and it took all the memory of my computer and I had no idea why...
  Then after many hours, I had a flash.. Maybe SyncEnumerator was guilty, since
it (does it?) seems to use continuations...
  Well.. in my code I actually could change the use of SyncEnumerator by an
Array#zip.. the result: the calculation took about no memory (instead of
several hundred megabytes) and finished almost instantly (as it always should
have)!

  So, maybe just a warning: SyncEnumerator is not as cheap as it seems: prefer
Array#zip, and at the moment I can't think of a reason when SyncEnumerator
brings something over Array#zip since Array#zip is so much faster...

  Attached a script.. it doesn't actually work to the end (the script is
working on data that I can't send here), but you can see the difference if
running with SyncEnumerator or Array#zip. Amazing!

  At line 12 in the script:
# s = SyncEnumerator.new(persons, values)
  s = persons.zip(values)

you can switch the comment between the two lines to see the change.

my conclusion for now: maybe SyncEnumerator will be one day more readable than
Array#zip, but in current implementations of ruby, it's way too slow..

emmanuel

raz.cvs (11.9 KB)

parser2.rb (1.81 KB)