No, not explicitly, but I was looking at evalcx which sets up and tears down a new JSContext each time a function is compiled. Just wondering if there's an incremental way of doing this so we don't incur the overhead each time reduce is invoked.
Maybe with TraceMonkey, this is a moot point? ;-) K. On Thu, Oct 23, 2008 at 9:42 AM, Jan Lehnardt <[EMAIL PROTECTED]> wrote: > > On Oct 23, 2008, at 18:35, kowsik wrote: > >> I was seeing the couchjs process getting pegged and I was looking into >> further. >> >> 1. The protocol uses "add_fun" command to add all the map functions to >> the view server so that they are compiled and ready to go. >> 2. Then "map_doc" is invoked with each document to return the results >> of the various emit's >> 3. They "reduce" and "rereduce" are invoked depending on the query. >> >> It's #3 that I'm interested in. The "reduce" command currently passes >> in the reduce function string from the design view each time it's >> invoked. This means the reduce function is first eval'd and then >> executed. I'm wondering if it's possible to rename "add_fun" to >> "add_map_fun" and introduce a new "add_reduce_fun" and then reference >> functions by index? Seems like it might speed things up quite a bit. > > Have you measured the reduce function compilation to be a bottleneck? > I'd guess (see, haven't measured either:-) that erlang-term to JSON & JSON > parsing take up significantly more time. > > Cheers > Jan > -- >