问题
我用node.js写了个服务,于是用supervisor热更新,方便在修改代码后,不用手动重新启动服务,但是,这时问题就来了,每次启动服务后,CPU瞬间占到80-90%,甚至是100%,如下图所示:
解决
刚开始我把问题定位在node.js的代码上,以为是node.js单线程的问题,但是我把操作数据库的代码全部注释掉了,仍然有问题,这说明代码没问题,于是就想到了supervisor热更新的问题了。
发现问题,启动热更新指令:
supervisor index.js
解决问题,启动热更新指令:
supervisor -i node_modules index.js
这句指令的意思是启动热更新时,忽略node_modules(依赖包)中的文件。
这时大家应该都清楚原因了,这是因为热更新默认监听了包括node_modules依赖包里的所有内容,导致占用了大量的CPU。