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

有没有熟悉 node 的朋友, Linux 上编译 node16 快 12 小时了,咋这么慢。。。

  •  
  •   LeeReamond · 57 天前 · 6415 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,从开始的时候感觉正常到现在怀疑自己是否哪里搞错了,一直编译,cpu 一直占用 100%(单核虚拟机)

    具体安装方法就是从官网上下个源码,然后解压,configure ,make && make install.

    编译过程中除了 CPU 占用高,内存占用也挺高的,不过 1G+swap 应该还扛得住,问题就是编译咋这么慢。而且编译之前也没要求装啥依赖之类的,像 python 编译起码还要装个 build-essential ,我是不是哪里做错了?

    32 条回复    2021-12-03 14:37:06 +08:00
    xiadong1994
        1
    xiadong1994  
       57 天前
    单核 1G ,emmmm……不是很了解 node 的编译,但是这个配置是不是有点太低了。还有 build 一般还挺吃磁盘 IO 的。
    felixcode
        2
    felixcode  
       57 天前 via Android
    单核肯定慢,不过影响更大的是内存不够用了 swap ,然后磁盘 io 性能还特别低。
    LeeReamond
        3
    LeeReamond  
    OP
       57 天前
    @felixcode
    @xiadong1994 我观察任务管理器了,没有走 swp 卡 io 的情况,而且 ssd 读写速度都是 500MB/S 的,卡了也不会像机械硬盘那样。问题在于它只是个 node ,我这又不是在编译宇宙第一 IDE....安装包大小才几十 MB ,编译跳一下几十 KB 总有吧。。
    xiadong1994
        4
    xiadong1994  
       57 天前
    应该就是单纯的慢,我在工作站上 make 了一下大概 5min 跑完
    thedrwu
        5
    thedrwu  
       57 天前 via Android   ❤️ 2
    估计 1G 内存连 linker 都跑不起来
    unnamedhao
        6
    unnamedhao  
       56 天前 via iPhone
    比慢?试试装 xcode ,单纯的安装
    encro
        7
    encro  
       56 天前
    1G 铁定慢,有什么想不开自己编译 node 呢。
    arischow
        8
    arischow  
       56 天前 via iPhone
    1G 连 npm build 公司项目都可能 oom
    max1233
        9
    max1233  
       56 天前
    12 个小时太夸张,1c2g 的小鸡都比这个快,编译 node 大概用了 15 分钟。话说为啥要编译呢 nvm 不香吗
    hronro
        10
    hronro  
       56 天前 via iPhone
    会不会是连 v8 一起在编译?如果是的话那很正常
    libook
        11
    libook  
       56 天前   ❤️ 2
    都是单核,也是有主频高低的,另外如果是虚拟机、容器之类的还会有其他开销。

    CPU 不够会慢,内存不够会崩,用 Swap 也会慢(即便用最快的 NVMe SSD 也远不及物理内存速度)。

    拿 Chromium 的编译来作参考,我找到了去年的一篇文章: https://textslashplain.com/2020/02/02/my-new-chromium-build-pc/
    16 核心 32 线程、64GB 内存、Intel Optane 905P NVMe SSD ,编译 Chromium 花了 53 分钟。
    skinny
        12
    skinny  
       56 天前
    当年很多人说 Qt 编译非常慢,随便六七个小时,我当时在我的笔记本下载编译也顶多一个小时,你这个慢得太夸张了
    2i2Re2PLMaDnghL
        13
    2i2Re2PLMaDnghL  
       56 天前
    make 有命令输出的
    如果一直有输出,那应该不是大问题,就是慢罢了
    如果没有,看下最后一条是啥卡住了,然后去提 Issue 问
    geniux
        14
    geniux  
       56 天前
    用二进制,不用编译。
    12101111
        15
    12101111  
       56 天前
    8 核+16G 内存+源码在 tmpfs 里, 用 Clang+ld.lld 开 LTO ,半个多小时
    你这个肯定是内存太小,swap 太严重了
    bootvue
        16
    bootvue  
       56 天前
    make -j 核心
    rm0gang0rf
        17
    rm0gang0rf  
       56 天前
    啥玩意也没这么慢。。1g 的没遇到过
    vanton
        18
    vanton  
       56 天前
    内存太小,编译需要大量内存,你这 1G 就是瓶颈。
    内存对于编译速度的影响是指数级别的,你内存加大 1 倍速度提升可能有 10 倍。
    shiny
        19
    shiny  
       56 天前
    那有点离谱,以前在树莓派上编译都没花这么久
    tulongtou
        20
    tulongtou  
       56 天前
    你也没有改源码,为什么要自己编译?直接下载二进制的运行不好么
    ppphp
        21
    ppphp  
       56 天前
    要么是内存就慢
    JDog
        22
    JDog  
       56 天前
    从标题来看,你不熟悉 node ,那么我推断你没有改 node 源码,请问为什么不直接用二进制包,而是自己编译呢?
    lianyue
        23
    lianyue  
       56 天前
    一旦 用上 swap 编译 卡死你 go build 内存够用 10 秒 内存小 半小时我都没出结果
    ruanimal
        24
    ruanimal  
       56 天前
    跑个题,为啥要编译安装 node
    seers
        25
    seers  
       56 天前 via Android
    如果内存不够大就会浪费时间一直在 paging
    codingBug
        26
    codingBug  
       56 天前 via Android
    是不是网络问题
    pengtdyd
        27
    pengtdyd  
       56 天前
    没有金刚钻不揽瓷器活
    ericgui
        28
    ericgui  
       56 天前
    请教楼主,为什么要编译 node ?要定制 runtime ?
    LeeReamond
        29
    LeeReamond  
    OP
       55 天前
    @JDog
    @ericgui
    因为我打开 google 搜索“linux nodejs 安装”,里面刚好点到弹出来第一个页面写的第一个装法是编译。而我就像楼上的,凭经验以为 15 分钟就能搞定了,也无所谓直接下不下二进制。结果睡一觉起来还在跑
    ericgui
        30
    ericgui  
       55 天前
    @LeeReamond 那你说你何苦
    hongch
        31
    hongch  
       55 天前
    软件的官网不都有教程吗,而且还是最新的,源码,二进制,安装包 各个平台的都有
    leopod1995
        32
    leopod1995  
       55 天前
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   996 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:46 · PVG 06:46 · LAX 14:46 · JFK 17:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.