On Sat, Apr 5, 2014 at 10:01 PM, Dan Schmidt <[email protected]>wrote:
> So, I'm trying to use streams more and better understand how to use them > properly. > > There was this little contest over at Treehouse to write an app that would > count the words in a text file after being filtered from a certain set of > words in another file. > > Myself and one other person chose to write our apps in node. > > I wrote mine using streams and they wrote theirs without. I have used the > time command to compare the two. Mine is consistently about 5 times slower. > > Link to mine: https://gist.github.com/DanSchmidt/10000777 > Link to their's: https://gist.github.com/pleary/9967501#file-waldo-js > > I could understand if some of my transform and filtering logic was perhaps > less performant than another's, but 5 times slower seems to suggest I'm > probably doing something wrong with the streams. > Your version is a lot more friendly to the event loop to the point that the same process could probably server a decent number of http requests if you threw an http.createServer in there somewhere. The faster one, on the other hand, will completely block the event loop after the second async call to request() finishes. So I wouldn't say you're doing anything wrong with the streams, it's just an extreme use of them. If the dataset is large enough to outweigh the setup overhead, you could try wrapping some of the pipeline steps in separate processes. ~Ryan -- http://twitter.com/rmgraham -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
