• Mac 环境 Vue 开发 CPU 占用率高 问题


    Mac开发Vue应用时,发现CPU风扇转的老高。

    htop查看一下:

    问题找到了,就是这个dev-server.js,node起的进程。

    然后就是 dtruss -p 1230(进程ID) 命名跟踪一下这个进程,发现一直在读取应用下的每个js文件。

    ps aux | grep node | grep -v grep | awk '{print $2}' | xargs sudo dtruss -p

    然后借用同事的ubuntu系统,问题并没有出现。这让我一度很沮丧。

    然后联想到是不是热更新出的问题,然后就是跟踪webpack源码,当然也是一无所获。

    后面不知咋地,使用如下命令 竟然修复了CPU占有率高的问题:

    npm install
    
    > fsevents@1.1.2 install /Users/phpdragon/SourceCode/phpdragon.com/front/node_modules/fsevents
    > node install
    
    [fsevents] Success: "/Users/phpdragon/SourceCode/phpdragon.com/front/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed
    Pass --update-binary to reinstall or --build-from-source to recompile
    npm notice created a lockfile as package-lock.json. You should commit this file.
    added 115 packages in 5.919s

    用git工具对比了一下,发现多增加了如下文件:

    再重启应用

    npm run dev

    htop一下:

    现在世界终于清静了!

    同样的命令在window下执行:

    $ npm install
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_moduleschokidar
    ode_modulesfsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

    报当前系统不支持,类库只支持MacOS。

    总结:

    原因就是webpack的热更新用到了fsevent 类库,所以当找不到的时候,程序不会报错,但会不停扫描项目下的所有js文件。导致CPU使用率很高。

    具体原因还得深入到webpack的源码进行查看了。

    有句话说的好,喜欢就买、不喜就分、多喝热水、重启试试!

    所以你没事就 npm install 试试,说不定就好了!雾

    PS:  

    Webpack-源码 

    Native Access to Mac OS-X FSEvents

    FSevents on Wiki

    Linux和Mac OS X 中监视文件变化  

  • 相关阅读:
    设计模式享元模式实现C++
    并查集
    设计模式代理模式实现C++
    设计模式装饰模式实现C++
    最小生成树Prim算法实现
    图的邻接矩阵存储
    威佐夫博弈(Wythoff Game)初识 HDU 1527 POJ 1067
    设计模式原型模式实现C++
    三种经典博弈问题 BashGame;WythoffGame;NimmGame;
    设计模式外观模式实现C++
  • 原文地址:https://www.cnblogs.com/phpdragon/p/7401858.html
Copyright © 2020-2023  润新知