• 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 中监视文件变化  

  • 相关阅读:
    使用TCMalloc优化OpenResty
    CentOS下强行umount卸载设备
    几种提高jQuery性能的代码
    知乎首页延时交互的小思路
    OpenResty+lua+GraphicsMagick生成缩略图
    __builtin__与__builtins__的区别与关系
    python语法学习之函数、类、模块
    os.popen与os.system区别
    getattr()函数详解
    python异常处理
  • 原文地址:https://www.cnblogs.com/phpdragon/p/7401858.html
Copyright © 2020-2023  润新知