2016-12-22 52 views
2

我正在運行凝視(https://github.com/shama/gaze)以觀察包含幾百個文件的幾個文件夾的變化。現在這個過程消耗了穩定的15%的CPU,這意味着四個中有一個完整的內核。爲什麼凝視消耗高CPU?

我做了一個檢查 - 我跑fs.watch通過相同的文件夾列表,並獲得具有類似功能的0.0%的CPU。

現在,問題是 - 除了閱讀代碼外,我該如何弄清楚什麼是凝視?有沒有分析工具?

另外 - 你是否已經知道這個問題可能是什麼?

系統細節: OSX 10.10 節點6.9.1 凝視1.1.2

回答

0

的原因竟然是fs.watchFile與默認使用凝視100ms的間隔。 Node的本地函數的默認時間間隔爲5007毫秒(根據文檔 - https://nodejs.org/docs/v6.9.1/api/fs.html#fs_fs_watchfile_filename_options_listener),因此使用interval === 5007調用注視可以解決問題(以及在注視源中註釋掉fs.watchFile)。

我現在擔心的是fs.watch和fs.watchFile都被使用,其中一個可能是多餘的,但這是另一個問題。

P.S.我試圖用node --prof來剖析這個進程,但是沒有找到對我有用的信息。