【问题标题】:Debugging "flow check" Fatal error: out of memory调试“流检查”致命错误:内存不足
【发布时间】:2017-04-17 07:58:43
【问题描述】:

我在一个非常大的 javascript 项目中工作,最近流已经开始占用过多的 RAM(大约 4Gb)来运行它的静态分析。

我相信我的团队向项目中引入了流可能难以解析的包/文件(例如 JSON 数据文件)。

有什么方法可以让我查看哪些文件流正在苦苦挣扎或查看正在加载的文件的日志?或者,有没有办法告诉流程“放弃”大文件?

编辑:我的问题的根源是一个 150MB 的 JSON 文件——我使用 Lewis C 的答案中的命令找到了该文件。

【问题讨论】:

    标签: flowtype


    【解决方案1】:

    流有一个ls 命令

    flow ls 将打印出启动服务器时将解析的文件列表。

    对于大型 javascript 项目,您可能希望忽略 node_modules。

    【讨论】:

    • 感谢 lewis,我现在可以使用 flow ls | xargs du -hs | sort -h 获取正在解析的所有文件流的大小
    【解决方案2】:

    我现在运行这个命令来查找所有可能在任何项目中挂起的大文件 (>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

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 2014-01-25
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2011-10-28
      相关资源
      最近更新 更多