Our tests were done with 0.10 and 0.11. We did not test with 0.8 because we upgraded to 0.10 a while ago.
I looked at the figures again. The large oscillations and big drop in fibers mode that I gave were actually on the "heap used". The RSS figures oscillate too but the drop is smaller. First RSS drop is from 1,500 MB to 1,000 MB and it does not seem to recover fully because the second drop is from 1,600 MB to 1,270 MB. I did not run it long enough because it was slowing down my machine but it looks like it was recovering heap ok but not RSS.
With generators, there are small oscillations both on RSS and heap used and no drift.
In callbacks mode RSS oscillates between 320 and 400 MB and "heap used" between 230 and 300 MB. No drift.
I did not let the test run very long in all modes because my main question was on whether there was a memory leak in our code or not and the generators test convinced me that our code was fine but that fibers was probably creating some fragmentation.
Note that I ran these tests before fixing the streamline issue that you submitted. So the fibers anomaly was probably exacerbated by the fact that too many fibers were created (but normally this should not cause a memory drift because they the extra fibers should get gced - but maybe not fast enough).
I just ran the test again (with a different dataset and different code). Here are the results:
FIBERS (node 0.10.12):
{"rss":314937344,"heapTotal":283053568,"heapUsed":254641840,"pass":0,"time":29372},
{"rss":534265856,"heapTotal":499651840,"heapUsed":432355680,"pass":1,"time":29911},
{"rss":620900352,"heapTotal":581138688,"heapUsed":422644152,"pass":2,"time":29221},
{"rss":618565632,"heapTotal":578115072,"heapUsed":416696632,"pass":3,"time":28907},
{"rss":639131648,"heapTotal":596605696,"heapUsed":410939696,"pass":4,"time":29213},
{"rss":639836160,"heapTotal":596605696,"heapUsed":398062944,"pass":5,"time":29281},
{"rss":642822144,"heapTotal":598669568,"heapUsed":459811952,"pass":6,"time":28656},
{"rss":606179328,"heapTotal":562587904,"heapUsed":471224040,"pass":7,"time":29660},
{"rss":574820352,"heapTotal":532709888,"heapUsed":417162456,"pass":8,"time":29323},
{"rss":637779968,"heapTotal":592935128,"heapUsed":406728656,"pass":9,"time":29772},
{"rss":639041536,"heapTotal":593979096,"heapUsed":470931984,"pass":10,"time":29700},
{"rss":601161728,"heapTotal":556865496,"heapUsed":478325752,"pass":11,"time":29406},
{"rss":576159744,"heapTotal":532087000,"heapUsed":408100176,"pass":12,"time":29582},
{"rss":643297280,"heapTotal":598118872,"heapUsed":401238528,"pass":13,"time":29282},
{"rss":645103616,"heapTotal":599252256,"heapUsed":465132296,"pass":14,"time":29024},
{"rss":603955200,"heapTotal":558645832,"heapUsed":465093840,"pass":15,"time":29542},
{"rss":579842048,"heapTotal":534875208,"heapUsed":402461880,"pass":16,"time":29927},
{"rss":645910528,"heapTotal":599839048,"heapUsed":463863312,"pass":17,"time":30046},
{"rss":603533312,"heapTotal":559653704,"heapUsed":474944280,"pass":18,"time":30995},
{"rss":579911680,"heapTotal":534899272,"heapUsed":409166288,"pass":19,"time":30505},
{"rss":643850240,"heapTotal":597811272,"heapUsed":474930392,"pass":20,"time":29379},
{"rss":603017216,"heapTotal":557601864,"heapUsed":404188824,"pass":21,"time":29771},
{"rss":646098944,"heapTotal":599917680,"heapUsed":464544432,"pass":22,"time":29596},
GENERATORS (node 0.11.5):
{"rss":393945088,"heapTotal":360213504,"heapUsed":278081672,"pass":0,"time":48933},
{"rss":369987584,"heapTotal":335567360,"heapUsed":308752168,"pass":1,"time":46810},
{"rss":402051072,"heapTotal":366405120,"heapUsed":333544944,"pass":2,"time":48393},
{"rss":409866240,"heapTotal":373604608,"heapUsed":350195848,"pass":3,"time":46794},
{"rss":403386368,"heapTotal":366393088,"heapUsed":342079296,"pass":4,"time":48155},
{"rss":396079104,"heapTotal":357189888,"heapUsed":264438320,"pass":5,"time":47397},
{"rss":368582656,"heapTotal":330419712,"heapUsed":292616840,"pass":6,"time":47927},
{"rss":396505088,"heapTotal":359205632,"heapUsed":330376792,"pass":7,"time":47052},
{"rss":390201344,"heapTotal":352018176,"heapUsed":323006624,"pass":8,"time":47252},
{"rss":376860672,"heapTotal":338663168,"heapUsed":309587504,"pass":9,"time":46469},
{"rss":378093568,"heapTotal":339695104,"heapUsed":315238776,"pass":10,"time":47025},
{"rss":386592768,"heapTotal":348910336,"heapUsed":329006168,"pass":11,"time":46781},
{"rss":384413696,"heapTotal":344818688,"heapUsed":314528152,"pass":12,"time":48344},
{"rss":375791616,"heapTotal":336635392,"heapUsed":292589752,"pass":13,"time":46985},
{"rss":390516736,"heapTotal":352030208,"heapUsed":262808992,"pass":14,"time":47844},
Generators are slower but use less memory and mem usage seems more stable.
Bruno