• FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed


    1、错误描述

    Administrator@USER-0GUONPPBHK MINGW64 /g/HBuilderXWork/erp-html (master)
    $ npm run dev
    
    > erp2@0.1.0 dev G:HBuilderXWorkerp-html
    > vue-cli-service serve
    
     INFO  Starting development server...
     69% building 795/799 modules 4 active ...jslibrarymoduleses6.object.assign.js
    <--- Last few GCs --->
    
    [7584:0000000000189BE0]    27378 ms: Mark-sweep 1154.6 (1451.3) -> 1143.5 (1453.8) MB, 111.9 / 0.0 ms  (average mu = 0.252, current mu = 0.245) allocation failure scavenge might not succeed
    [7584:0000000000189BE0]    27543 ms: Mark-sweep 1156.6 (1453.8) -> 1144.6 (1454.8) MB, 136.6 / 0.0 ms  (average mu = 0.212, current mu = 0.173) allocation failure scavenge might not succeed
    
    
    <--- JS stacktrace --->
    
    ==== JS stack trace =========================================
    
        0: ExitFrame [pc: 0000039194C50461]
    Security context: 0x0035d821d949 <JSObject>
        1: DoJoin(aka DoJoin) [00000035D8205DE9] [native array.js:~89] [pc=0000039194F65E18](this=0x02bfff5825b1 <undefined>,0x0261fd63b6e1 <JSArray[2]>,2,0x02bfff582741 <true>,0x0035d8255019 <String[1]: 
    >,0x02bfff582801 <false>,0x02bfff5825b1 <undefined>,0x02bfff5825b1 <undefined>)
        2: Join(aka Join) [00000035D8205E39] [native array.js:~115] [pc=0000039...
    
    FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
     1: 000000013F37EDDA v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4618
     2: 000000013F325FC6 uv_loop_fork+79638
     3: 000000013F326B30 uv_loop_fork+82560
     4: 000000013F7E4E1E v8::internal::FatalProcessOutOfMemory+798
     5: 000000013F7E4D57 v8::internal::FatalProcessOutOfMemory+599
     6: 000000013FABECB4 v8::internal::Heap::RootIsImmortalImmovable+14788
     7: 000000013FAB48F4 v8::internal::Heap::CollectGarbage+7556
     8: 000000013FAB2FC8 v8::internal::Heap::CollectGarbage+1112
     9: 000000013FABC937 v8::internal::Heap::RootIsImmortalImmovable+5703
    10: 000000013FABC9B6 v8::internal::Heap::RootIsImmortalImmovable+5830
    11: 000000013F67C42B v8::internal::Factory::AllocateRawWithImmortalMap+59
    12: 000000013FE23A6D v8::internal::compiler::RawMachineAssembler::MakeNode+151277
    13: 0000039194C50461
    npm ERR! code ELIFECYCLE
    npm ERR! errno 134
    npm ERR! erp2@0.1.0 dev: `vue-cli-service serve`
    npm ERR! Exit status 134
    npm ERR!
    npm ERR! Failed at the erp2@0.1.0 dev script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     F:
    odejs
    ode_cache\_logs2019-09-03T04_01_02_161Z-debug.log
    

    2、错误原因

          在vue.js引入ztree插件,导入很多的JavaScript文件,导致JavaScript内存溢出

          package.json配置

    {
      "name": "erp2",
      "version": "0.1.0",
      "private": true,
      "scripts": {
        "dev": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "lint": "vue-cli-service lint"
      },
      "dependencies": {
        "axios": "^0.19.0",
        "core-js": "^2.6.5",
        "element-ui": "^2.11.1",
        "js-cookie": "^2.2.1",
        "nprogress": "^0.2.0",
        "vue": "^2.6.10",
        "vue-amap": "^0.5.10",
        "vue-router": "^3.1.2",
        "vuex": "^3.1.1"
      },
      "devDependencies": {
        "@babel/core": "7.0.0",
        "@babel/register": "7.0.0",
        "@vue/cli-plugin-babel": "3.5.3",
        "@vue/cli-plugin-eslint": "^3.9.1",
        "@vue/cli-plugin-unit-jest": "3.5.3",
        "@vue/cli-service": "3.5.3",
        "@vue/test-utils": "1.0.0-beta.29",
        "autoprefixer": "^9.5.1",
        "babel-core": "7.0.0-bridge.0",
        "babel-eslint": "10.0.1",
        "babel-jest": "23.6.0",
        "chalk": "2.4.2",
        "chokidar": "2.1.5",
        "connect": "3.6.6",
        "eslint": "5.15.3",
        "eslint-plugin-vue": "5.2.2",
        "fuse.js": "^3.4.5",
        "html-webpack-plugin": "3.2.0",
        "husky": "1.3.1",
        "lint-staged": "8.1.5",
        "mockjs": "^1.0.1-beta3",
        "node-sass": "^4.9.0",
        "plop": "2.3.0",
        "runjs": "^4.3.2",
        "sass-loader": "^7.1.0",
        "screenfull": "^4.2.1",
        "script-ext-html-webpack-plugin": "2.1.3",
        "script-loader": "0.7.2",
        "serve-static": "^1.13.2",
        "svg-sprite-loader": "4.1.3",
        "svgo": "1.2.0",
        "vue-template-compiler": "2.6.10"
      },
      "eslintConfig": {
        "root": true,
        "env": {
          "node": true
        },
        "extends": [
          "plugin:vue/essential",
          "eslint:recommended"
        ],
        "rules": {},
        "parserOptions": {
          "parser": "babel-eslint"
        }
      },
      "postcss": {
        "plugins": {
          "autoprefixer": {}
        }
      },
      "browserslist": [
        "> 1%",
        "last 2 versions",
        "not ie <= 8"
      ]
    }
    

    3、解决办法

    (1)修改node.js运行时的缓存

    "serve" : "node --max_old_space_size=4096 node_modules/.bin/vue-cli-service serve --open"
  • 相关阅读:
    各种知识点
    链表
    滑动窗口
    数组

    【转】无重复字符的最长子串
    【转】荷兰国旗问题 三指针排序
    【转】回溯思想团灭排列、组合、子集问题
    【LeetCode】45. 跳跃游戏 II
    动态分配内存初始化二维数组
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313697.html
Copyright © 2020-2023  润新知