最近我開始了我的第一個項目node.js
,我可以肯定地說我很喜歡它。非常強大的所有模塊;然而,似乎我有一個「輕微的」內存泄漏,導致我的服務器在大約一小時後崩潰(命中99-100%的CPU)。我一直在嘗試解決這個問題一段時間了。用memwatch進一步定位內存泄漏
幸運的是,經過一番搜索之後,我發現了一種名爲memwatch
的流行工具。我當然安裝了模塊,並開始記錄我的服務器進程的內存使用情況/存儲情況。
最終,在查看日誌後,我發現可能的原因。
{
"what": "String",
"size_bytes": 9421368,
"size": "8.98 mb",
"+": 16635,
"-": 533
}
當然,在30秒之內,這個小小的蟲子增加了9mb(很不尋常)。這是很好,很花哨,知道我的內存泄漏似乎是string
,但我究竟從哪裏去?有什麼辦法可以獲得更準確的結果嗎?
我翻遍了我的代碼,但是我的代碼中確實沒有string
,可能會像這樣增長。有沒有可能這個字符串實際上不是我的代碼的一部分,更多的是節點或Socket.IO模塊的一部分?
第一個鏈接不再工作。 – newguy