Mac OSX Big Sur下Sophos干扰NodeJS进程致Jest测试运行缓慢问题求助
Big Sur系统下Sophos干扰Jest测试运行解决办法
实操解决方案
- 打开Sophos Endpoint防护控制台,进入设置板块,选择恶意软件实时扫描配置项
- 新增两类白名单规则:
- 添加Node可执行文件路径:可在终端执行
which node获取本地Node的实际安装路径,常见路径包括/usr/local/bin/node、nvm管理的~/.nvm/versions/node/<对应版本号>/bin/node - 添加本地前端项目存放根目录,跳过Jest运行时生成的大量临时缓存文件的扫描
- 添加Node可执行文件路径:可在终端执行
- 若临时需要快速跑测试,可先关闭Sophos实时扫描功能,测试完成后再手动开启
- 可调整Jest运行参数降低并发数,修改package.json内的test命令为
jest --maxWorkers=2,减少短时间内的文件IO次数,降低Sophos扫描触发频率
问题原因
Jest运行测试时会在短时间内创建、修改大量临时缓存文件,同时会启动多个Node子进程,Sophos默认会对所有新进程和新修改的文件做实时安全校验,Big Sur系统下Sophos的系统回调优先级更高,因此会出现CPU占用飙升至400%的情况,添加白名单后Sophos会跳过对应路径的进程和文件扫描,不会再拖慢测试运行速度。

内容的提问来源于stack exchange,提问作者rmehlinger
相关产品推荐
相关产品推荐

