我的服務返回非常大的JSON對象的響應 - 大約60MB。經過一些分析後,我發現幾乎所有的時間都在執行JSON.stringify()
調用,該調用用於轉換爲字符串並將其作爲響應發送。我嘗試過stringify的自定義實現,它們甚至更慢。NodeJS JSON.stringify()瓶頸
這對我的服務來說是個瓶頸。我希望能夠儘可能多地處理每秒請求 - 目前1個請求需要700毫秒。
我的問題是:
1)我可以優化發送響應部分嗎?是否有比將對象串化併發送響應更有效的方法?
2)在一個單獨的線程中使用異步模塊並執行JSON.stringify()
可以提高整體的請求數/秒(考慮到90%以上的時間用於該呼叫)?
你可以做什麼來減少這些對象的大小?什麼讓他們這麼大? – jameslafferty
您是否嘗試過使用socket.io。 JSON.stringify將整個對象加載到內存中,所以我不認爲你可以優化它。但60兆的JSON太大了。 – himangshuj
您是否發送冗餘數據?如果修改了數據的子集,則不要重新發送所有數據,只需重新發送子集。這可能允許您減少您串聯的數據量 – Paulpro