广告位联系
返回顶部
分享到

Node.js参数max-old-space-size的介绍

JavaScript 来源:互联网 作者:佚名 发布时间:2023-01-26 10:55:19 人浏览
摘要

前言 Old space是 V8 托管(也称为垃圾收集)堆(即 JavaScript 对象所在的位置)中最大和最可配置的部分,而--max-old-space-size标志控制其最大大小。 随着内存消耗接近极限,V8 将花费更多

前言

Old space是 V8 托管(也称为垃圾收集)堆(即 JavaScript 对象所在的位置)中最大和最可配置的部分,而 --max-old-space-size 标志控制其最大大小。 随着内存消耗接近极限,V8 将花费更多时间在垃圾收集上,以释放未使用的内存。

如果堆内存消耗(即 GC 无法释放的活动对象)超过限制,V8 将使您的进程崩溃(因为缺乏替代方案),因此您不想将其设置得太低。 当然,如果您将其设置得太高,那么 V8 将允许的额外堆使用可能会导致您的整个系统内存不足(并且由于缺乏替代方案而交换或终止随机进程)。

总之,在具有 2GB 内存的机器上,我可能会将 --max-old-space-size 设置为大约 1.5GB 以留出一些内存用于其他用途并避免交换。

当我在应用程序中运行“npm start”时,出现以下错误:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

大多数在线发布的解决方案都是关于使用 NODE_OPTIONS="–max-old-space-size=2048" 增加内存。

设置环境变量

NODE_OPTIONS --max-old-space-size 环境变量允许增加节点的最大堆大小。 设置环境变量允许 Node 从您的环境中读取此值,因此我们不需要在每次运行 Node 命令时将此值作为参数传递。 这被设置为一个全局值,并且可以被每个 Node 进程使用。

使用下列命令行设置环境变量:

export NODE_OPTIONS="–max-old-space-size=8192"

如果将此命令放在终端会话中,则需要在每个新会话中执行此操作。 为避免这种情况,您可以将其放入 shell 脚本文件中,终端会自动为您加载它。

.bashrc 文件存在于 Linux 环境中,大多数评论都将重新加载 bash 作为一种快速方式,例如 source ~/.bashrc ,它在当前会话中加载环境变量。 可以随时重新启动终端以重新加载,但前者是首选! 同样,如果使用 Windows,请忽略这一点。

命令行方式

命令行:

node --max_old_space_size=5000 yourapp.js

第三种方式,基于项目

1

2

3

4

"scripts":

{

    "start": "cross-env NODE_OPTIONS=--max-old-space-size=8192 webpack"

}


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/i042416/article/details/122959811
相关文章
  • Vue3跨域解决方案实例介绍
    vue项目配置代理 vue.config.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 const { defineConfig } = require(@vue/cli-service) module.exports = defineConfig({ transpileDependencies:
  • Node.js参数max-old-space-size的介绍
    前言 Old space是 V8 托管(也称为垃圾收集)堆(即 JavaScript 对象所在的位置)中最大和最可配置的部分,而--max-old-space-size标志控制其最大大
  • 用js实现一个网页版节拍器

    用js实现一个网页版节拍器
    平时练尤克里里经常用到节拍器,突发奇想自己用js开发一个。 最后实现的效果如下:ahao430.github.io/metronome/。 代码见github仓库:github.com/
  • js日期格式化yyyy-MM-dd问题

    js日期格式化yyyy-MM-dd问题
    js日期格式化yyyy-MM-dd 方法一 1 2 3 4 5 6 7 8 9 10 11 12 13 function formatDate(date) { console.log(date); // date = new Date(); date = new Date(Date.parse(date.replace(/-/g
  • Nodejs如何解决跨域(CORS)
    Nodejs解决跨域(CORS) 前后端分离的大环境下,受制于同源策略,我们需要懂得实现CORS(Cross-Origin Resource Sharing) 手动配置 在nodejs中,req 和
  • JS图形编辑器场景坐标视口坐标的相互转换

    JS图形编辑器场景坐标视口坐标的相互转换
    图形编辑器的坐标系有两种。 一个是场景(scene)坐标系,一个是视口(viewport)坐标系。视口就是场景的一个子区域。 假设我们的视口的
  • JS图形编辑器实现标尺功能

    JS图形编辑器实现标尺功能
    项目地址: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 标尺指的是画布上边和左边的两个有刻度的尺子,作用让用户知
  • JS快速检索碰撞图形之四叉树碰撞检测

    JS快速检索碰撞图形之四叉树碰撞检测
    在上篇文章我们讨论了使用脏矩形渲染,通过重渲染局部的图形来提优化 Canvas 的性能,将 GPU 密集转换为 CPU 密集。 CPU 密集在哪? 在需要
  • three.js简单实现类似七圣召唤的掷骰子

    three.js简单实现类似七圣召唤的掷骰子
    1基本工作 笔者利用业余时间自学了three.js。为了更好的了解WebGL以及更熟练的使用three,想模仿原神中的小游戏七圣召唤中的投掷骰子效果,
  • JS技巧多状态页面中的mock方案介绍

    JS技巧多状态页面中的mock方案介绍
    我们有时候会遇到一个业务页面存在很多个状态,甚至子状态,比如订单详情就是其中的典型,涉及从订单创建到订单结束,以及售后等流
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计