我正在一个非常大的javascript项目中工作,最近流程开始占用过多的RAM(大约4Gb)来运行它的静态分析。
我相信我的团队将软件包/文件引入了项目,这可能很难解析流程(例如JSON数据文件)。
有没有办法让我看到哪些文件流正在挣扎或看到它正在加载的文件的日志?或者,有没有办法告诉流程“放弃”大文件?
编辑:我的问题的来源是一个150MB的JSON文件 - 我在Lewis C的答案中使用命令找到了该文件。
答案 0 :(得分:2)
flow有一个ls
命令
flow ls
将打印出要启动服务器时将解析的文件列表。
对于大型javascript项目,您可能希望忽略node_modules。
答案 1 :(得分:0)
我现在运行此命令来查找可能在任何项目上挂起流的所有大文件(> 1MB)。
#!/bin/bash
flow ls | xargs du -hs --threshold=1M 2>/dev/null | sort -h | cut -f 2 | sed 's|'"$(pwd)"'/||g'
说明:
flow ls
:获取所有文件流正在解析
xargs du -hs --threshold=1M 2>/dev/null
:获取所有文件及其大小(如果超过1MB)
sort -h
:对生成的文件进行排序
cut -f 2
:删除尺寸标签
sed 's|'"$(pwd)"'/||g
:使用相对路径替换文件的完整路径
注意:OSX上可能不支持--threshold