NodeJS JSON.stringify()瓶颈

我的服务返回非常大的JSON对象的响应 – 大约60MB。 经过一些分析,我发现它几乎所有的时间都在做JSON.stringify()调用,它被用来转换为string并将其作为响应发送。 我已经尝试了stringify的自定义实现,他们甚至更慢。

这对我的服务来说是一个瓶颈。 我希望能够处理尽可能多的请求,每秒尽可能 – 目前1请求需要700毫秒。

我的问题是:
1)我可以优化响应部分的发送吗? 有没有更有效的方法比串化对象和发送响应?

2)使用asynchronous模块并在一个单独的线程中执行JSON.stringify()提高整体的请求数/秒(假设在该调用中花费了90%以上的时间)?

你有两个select:

1)find一个JSON模块,它将允许您对stringify操作进行stream式处理,并以块为单位进行处理。 我不知道这样的模块是否在那里,如果不是你必须build立它。 编辑:感谢Reinard Mavronicolas在评论中指出JSONStream 。 我实际上已经把它放在了我的背后,为了不同的用例,寻找这样的东西。

2) async不使用线程。 您需要使用cluster或其他实际的线程模块将处理放入单独的线程中。 这里的警告是,你仍然在处理大量的数据,你使用线程获得带宽,但取决于你的stream量,你仍然可能达到极限。