前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于node项目打包内存溢出JS stacktrace

关于node项目打包内存溢出JS stacktrace

作者头像
用户1437675
发布于 2022-03-24 00:42:35
发布于 2022-03-24 00:42:35
3K00
代码可运行
举报
文章被收录于专栏:Angular&服务Angular&服务
运行总次数:0
代码可运行

问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<--- Last few GCs --->

   58003 ms: Mark-sweep 1350.6 (1434.6) -> 1350.5 (1434.6) MB, 753.0 / 0.0 ms [allocation failure] [GC in old space requested].
   58751 ms: Mark-sweep 1350.5 (1434.6) -> 1350.5 (1434.6) MB, 747.6 / 0.0 ms [allocation failure] [GC in old space requested].
   59479 ms: Mark-sweep 1350.5 (1434.6) -> 1352.9 (1404.6) MB, 728.1 / 0.0 ms [last resort gc].
   60211 ms: Mark-sweep 1352.9 (1404.6) -> 1355.4 (1404.6) MB, 731.9 / 0.0 ms [last resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0000017B93ACFB61 <JS Object>
    1: init_scope_vars [0000017B93A04381 <undefined>:~3382] [pc=0000021C499F308D] (this=000003B07C026939 <an AST_Function with map 000001FA502ACAB9>,nesting=3)
    2: visit [0000017B93A04381 <undefined>:~3246] [pc=0000021C499EFC85] (this=000003CB4FA172A1 <a TreeWalker with map 000001FA502AEB61>,node=000003B07C026939 <an AST_Function with map 000001FA502ACAB9>,descend=000003EF887DA4C9 <JS Func...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

问题图片

解决办法一

设置node变量使用最大内存为自己需要的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# linux & mac下面
export NODE_OPTIONS=--max_old_space_size=8096

# windows 下面
set NODE_OPTIONS=--max_old_space_size=8096

# 使用cross-env解决mac 与 windows 的差异
npm install --save-dev cross-env # 安装

cross-env NODE_OPTIONS=--max_old_space_size=8096

例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cross-env NODE_OPTIONS=--max_old_space_size=8096 npm run build

解决方法二

通过package.json加大内存,在启动node

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
node --max-old-space-size=8192 node\_modules/rollup/bin/rollup -c rollup-config.js

解决方法三

注:如果是按照方案三解决的话,在gitbash下执行npm run build的话会报错。

在nodejs 根目录下把node.exe 重命名一下(比如node2.exe,防止和node.cmd冲突),建一个node.cmd文件 里面写上 node2.exe --max-old-space-size=4096 %* 大概意思就是本来调用node.exe的时候被node.cmd劫持,强制分配最大内存为4096MB ,然后再调用node.exe。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.03.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
笔记:记一次解决V8使用内存超过默认限制
混合TypeScript和javaScript开发,完美升级老项目,这个老项目是一个巨无霸项目,非常庞大,是集团公司的最核心项目
Peter谭金杰
2020/05/09
3.7K0
笔记:记一次解决V8使用内存超过默认限制
关于ng build编译报错
1.在项目 myProject\node_modules\.bin 文件夹下面找到ng.cmd 和 ngc.cmd 文件添加配置信息
用户1437675
2018/08/20
1K0
理解 Node.js 的 GC 机制
随着 Node 的发展,JavaScript 的应用场景早已不再局限在浏览器中。本文不讨论网页应用、命令行工具等短时间执行,且只影响终端用户的场景。由于运行时间短,随着进程的退出,内存会释放,几乎没有内存管理的必要。但随着 Node 在服务端的广泛应用,JavaScript 的内存管理需要引起我们的重视。
超超不会飞
2020/09/18
2K0
理解 Node.js 的 GC 机制
《深入浅出Node.js》-内存控制
本章学习 V8 的垃圾回收机制以及如何高效使用内存,内存泄漏以及如何排查内存泄漏。
李振
2021/11/26
8850
angular打包报错内存溢出 nodejs 执行失败报错 “JavaScript heap out of memory” 的解决办法
报错信息很直观地指出是内存溢出了。是什么导致了内存溢出呢?其根本原因在于 nodejs 默认限制了最大可使用的内存大小。
用户1437675
2019/03/06
6.2K0
Node.js 是如何做 GC (垃圾回收)的?
GC,Garbage Collection,垃圾回收。在编程中,一般指的是内存自动回收机制,会定时将不需要用到的数据进行清除。
前端西瓜哥
2022/12/21
9060
Node.js 是如何做 GC (垃圾回收)的?
项目构建内存溢出了?看看 Node 内存限制
看到内存溢出这个关键字,我们一般都会考虑到是因为 Node.js 内存不够导致的。
皮小蛋
2021/05/06
4.7K0
项目构建内存溢出了?看看 Node 内存限制
如何调整 Node.js 项目配置以解决内存分配问题
在使用 Node.js 开发和运行应用程序时,偶尔会遇到 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory 的错误。这通常意味着应用程序需要分配的内存超过了 V8 引擎的默认限制,导致程序崩溃。本文将详细探讨如何通过修改 package.json 文件和其他相关手段,优化内存分配,确保 Node.js 应用的稳定运行。
编程小妖女
2025/01/08
9870
如何调整 Node.js 项目配置以解决内存分配问题
Node.js内存溢出时如何处理?
Node.js 做密集型运算,或者所操作的数组、对象本身较大时,容易出现内存溢出的问题,这是由于 Node.js 的运行环境依赖 V8 引擎导致的。如果经常有较大数据量运算等操作,需要对 Node.js 运行环境限制有充分的了解。
coder_koala
2019/08/21
5K0
Node.js内存溢出时如何处理?
Node.js内存管理和V8垃圾回收机制
对于 Node.js 服务端研发的同学来说,关于垃圾回收、内存释放这块不需要向 C/C++ 的同学那样在创建一个对象之后还需要手动创建一个 delete/free 这样的一个操作进行 GC(垃圾回收), Node.js 与 Java 一样,由虚拟机进行内存自动管理。
五月君
2019/07/12
3K0
Node.js内存管理和V8垃圾回收机制
解读 V8 GC Log(二): 堆内外内存的划分与 GC 算法
上一篇文章介绍了理解 V8 GC Log 的意义在哪,简单介绍了一下 V8 GC 的整体特征。在这篇文章里,我们介绍 V8 中堆内存的划分与新老生代的 GC 算法。这些基础知识是理解 V8 GC Log 的关键,不过这篇文章的介绍点到为止,能够读懂 V8 GC Log 即可,以免把大家在细节中带迷路。
五月君
2020/03/02
2.2K0
常用的 JDK 自带命令行工具
在这里可以找得到这些工具的列表,虽然官网上免责声明为 “The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They might not be available in future JDK versions.”,但实际上这些工具还是非常有用的,尤其可以站在 JVM 的角度来定位问题。我在此简单罗列一些常用的工具和命令,以及相应的执行结果示例。如果你经常和 JVM 打交道,最好对这些工具的常用命令熟记。
四火
2022/07/18
5960
常用的 JDK 自带命令行工具
有意思的 Node.js 内存泄漏问题
作者:elvinpeng,腾讯 WXG 前端开发工程师 Node.js 使用的是 V8 引擎,会自动进行垃圾回收(Garbage Collection,GC),因而写代码的时候不需要像 C/C++ 一样手动分配、释放内存空间,方便不少,不过仍然需要注意内存的使用,避免造成内存泄漏(Memory Leak)。 内存泄漏往往非常隐蔽,例如下面这段代码你能看出来是哪儿里有问题吗? let theThing = null; let replaceThing = function() {   const new
腾讯技术工程官方号
2020/08/21
6.4K2
Jenkins前端打包内存溢出问题
公司项目vue构建,体积比较庞大,在Jenkins上构建时,有新的内容提交时,第一次npm run build必失败,报内存溢出错误
全栈程序员站长
2021/05/19
4.8K0
什么是 Node.js 应用的 max-semi-space-size 参数
max-semi-space-size 是 Node.js 应用中的一个重要参数,直接影响着 V8 引擎的内存管理。它决定了 JavaScript 代码执行时分配给堆的某一部分的大小。为了深入理解这个参数,我们需要探讨 V8 内存管理的机制,以及它在 Node.js 运行时环境中的应用。V8 是 Chrome 浏览器和 Node.js 的核心 JavaScript 引擎,它对内存管理的设计直接影响 JavaScript 代码的执行效率。为了便于理解,本文将详细解释 max-semi-space-size 参数在 V8 引擎中的角色,并讨论如何通过调整该参数优化 Node.js 应用的性能。
编程小妖女
2024/12/23
1610
什么是 Node.js 应用的 max-semi-space-size 参数
node:内存溢出(报错:CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足)
描述:项目运行npm run dev 运行一定次数(我这里只能保存一次,第二次保存就报错,需要重新运行npm run dev,很耗费时间)后报错 报错:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 翻译:CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足
江一铭
2022/06/16
2.2K0
Node理论笔记:内存控制
JavaScript和Java一样是由垃圾回收机制来进行自动内存管理的,对于浏览器,几乎不需要考虑内存回收的问题,但服务器对性能更为敏感,内存管理的好坏、垃圾回收是否优良,都会对服务造成影响。再node中,这一切都与JavaScript引擎——V8相关。
Ashen
2020/06/01
6990
Java内存分析工具jmap
JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。
全栈程序员站长
2021/05/31
5.2K0
关于Node.js中内存管理的思考与实践
随着Node的发展,JavaScript的运行已经不再局限于运行在浏览器中了,Node在服务端的应用使得越来越多的问题也显现出来。对于刚接触JavaScript的开发者来说,基本上很少会想到内存分配或者内存泄露的问题,为了跟上潮流,就讲解一下Node是如何合理高效地使用内存,防止内存泄漏。
桃翁
2020/05/19
1.4K0
关于Node.js中内存管理的思考与实践
HBase Thrift2 CPU过高问题分析
外界连接9090端口均超时,但telnet端口总是成功。使用top命令观察,发现单个线程的CPU最高达99.99%,但并不总是99.9%,而是在波动。当迁走往该机器的流量后,能够访问成功,但仍然有超时,读超时比写超时多:
一见
2018/08/02
7190
相关推荐
笔记:记一次解决V8使用内存超过默认限制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验