Node.js/Express RESTful API から JSON 文字列に変換された非常に大きなオブジェクトを返す必要があるシナリオがあります。
res.end(JSON.stringify(obj));
ただし、これはうまくスケーリングできないようです。具体的には、1 ~ 2 台のクライアントが接続しているテスト マシンでは問題なく動作しますが、多くのクライアントが大きな JSON オブジェクトを同時に要求している場合、この操作によって CPU とメモリの使用量が大幅に増加する可能性があると思われます。
非同期の JSON ライブラリを探し回ったのですが、見つかった唯一のライブラリに問題があるようです (具体的には、[RangeError] が発生しました)。それだけでなく、文字列を 1 つの大きなチャンクで返します (たとえば、コールバックは文字列全体で 1 回呼び出されるため、メモリ フットプリントは減少しません)。
私が本当に欲しいのは、JSON.stringify 関数の完全に非同期のパイピング/ストリーミング バージョンです。これにより、ストリームに直接パックされたデータを書き込むことができます。したがって、メモリ フットプリントを節約し、CPU を消費することもありません。同期ファッション。