2016-12-22 7 views
2

Я запускаю взгляд (https://github.com/shama/gaze), чтобы посмотреть изменение нескольких папок, содержащих несколько сотен файлов. Теперь процесс потребляет устойчивый 15% процессор, что означает, что один полный ядро ​​из четырех.Почему Gaze потребляет высокий процессор?

Я сделал чек - я запустил fs.watch по тому же списку папок и получил 0.0% CPU с аналогичной функциональностью.

Теперь вопрос - как мне понять, что такое взгляд, помимо чтения кода? Есть ли какой-нибудь инструмент для профилирования?

Кроме того - вы уже знаете, в чем проблема?

Системные детали: OSX 10,10 Node 6.9.1 Gaze 1.1.2

ответ

0

Причина оказалась быть использование fs.watchFile с по умолчанию смотреть интервал 100мс. Интервал по умолчанию для собственной функции Node составляет 5007 мс (согласно документам - https://nodejs.org/docs/v6.9.1/api/fs.html#fs_fs_watchfile_filename_options_listener), поэтому вызов с интервалом === 5007 исправляет проблему (а также комментирует fs.watchFile в источнике взгляда).

Моя забота теперь в том, что используются как fs.watch, так и fs.watchFile, и один из них, вероятно, избыточен, но это еще одна проблема.

P.S. Я попытался профилировать процесс с помощью node -prof, но не нашел информацию, которая мне была полезной.