V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LASockpuppet
V2EX  ›  Node.js

node 堆栈溢出怎么排查根因啊

  •  
  •   LASockpuppet · 3 天前 via iPhone · 600 次点击

    项目里更新了一个依赖版本,这个依赖的新版本增加了其他依赖。然后在项目构建时,node 内存爆了。。。z 有什么方法能排查根因吗

    6 条回复    2025-01-09 22:46:00 +08:00
    wangritian
        1
    wangritian  
       3 天前
    如果是我,先加一倍同内存容量的页面文件/交换区快速试试水
    sagaxu
        2
    sagaxu  
       3 天前
    先不要排查,排查出来大概率只能降版本,无法根治,建议先尝试调高 heap 的大小。node 使用的 v8 引擎,默认 heap 最多只能使用 1/4 物理内存,如果是 8G 的机器,heap 上限只有 2G ,已经不能满足很多 build 任务了。
    june4
        3
    june4  
       2 天前   ❤️ 1
    先试试一个简单的办法,可以省一些内存
    LD_PRELOAD=/usr/lib/libjemalloc.so npm/node ...
    LASockpuppet
        4
    LASockpuppet  
    OP
       2 天前 via iPhone
    @sagaxu 把 node 调到了 6g ,还是爆了,感觉是新依赖里面循环依赖导致的,用的是 webpack 4
    fengYH8080
        5
    fengYH8080  
       2 天前
    把 package-lock.json 和 node_modules 删了重新下载一遍依赖,如果怀疑是循环依赖,可以全局装个 madge 检查下项目有没有循环依赖
    gesse
        6
    gesse  
       1 天前
    @june4
    效果怎么样? 有实际运营环境中的数据吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1716 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 16:35 · PVG 00:35 · LAX 08:35 · JFK 11:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.