簡體   English   中英

Node.js:JSON.parse會阻塞事件循環嗎?

[英]Node.js: does JSON.parse block the event loop?

使用JSON.parse是將JSON字符串解析為JavaScript對象的最常用方法。

它是一個同步代碼,但它實際上阻止了事件循環(因為它的級別比用戶的代碼低得多)?

是否有一種簡單的方法來異步解析JSON? 對於幾KB來說,它應該是否重要 - 幾百KB的JSON數據?

在它返回值之前不接受回調的函數。 所以是的JSON.parse塊。 但解析JSON是一項CPU密集型任務,而JS是單線程的。 所以解析必須在某個時候阻塞主線程。 Async只在等待另一個進程或系統時才有意義(這就是為什么磁盤I / O和網絡具有良好的異步感,因為它們比原始CPU處理具有更多的延遲)。

我首先要證明在開始優化它的解析之前解析JSON實際上是你的應用程序的瓶頸。 我懷疑它不是。

如果您認為可能需要進行大量繁重的JSON解碼,請考慮將其移至另一個進程。 我知道這看起來很明顯,但成功使用node.js的關鍵在於名稱。

要設置另一個“節點”頂部處理CPU繁重的任務,請使用IPC。 簡單的插座可以,但ØMQ增加了一點放射性魔法,因為它支持各種傳輸。

可能是連接套接字和發送JSON的開銷總體上更加密集,但它肯定會阻止阻塞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM