简单聊一聊Node.js参数max-old-space-size

 更新时间:2023年01月24日 09:37:19   作者:汪子熙  
简单的说Node.js就是运行在服务端的JavaScript,下面这篇文章主要给大家介绍了关于Node.js参数max-old-space-size的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

前言

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

第三种方式,基于项目

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

总结

到此这篇关于Node.js参数max-old-space-size的文章就介绍到这了,更多相关Node.js参数max-old-space-size内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nodejs6下使用koa2框架实例

    nodejs6下使用koa2框架实例

    本篇文章主要介绍了nodejs6下使用koa2框架实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • node.js如何自定义实现一个EventEmitter

    node.js如何自定义实现一个EventEmitter

    我们了解到,Node采用了事件驱动机制,而EventEmitter就是Node实现事件驱动的基础,本文主要介绍了node.js自定义实现EventEmitter,感兴趣的可以了解一下
    2021-07-07
  • node.js 用socket实现聊天的示例代码

    node.js 用socket实现聊天的示例代码

    本篇文章主要介绍了node.js 用socket实现聊天的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 详解用Node.js写一个简单的命令行工具

    详解用Node.js写一个简单的命令行工具

    本篇文章主要介绍了详解用Node.js写一个简单的命令行工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 利用nvm管理多个版本的node.js与npm详解

    利用nvm管理多个版本的node.js与npm详解

    这篇文章主要给大家介绍了关于利用nvm管理多个版本的node.js与npm的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • windows8.1+iis8.5下安装node.js开发环境

    windows8.1+iis8.5下安装node.js开发环境

    这篇文章主要介绍了windows8.1+iis8.5下安装node.js开发环境的方法,需要的朋友可以参考下
    2014-12-12
  • koa+mongoose实现简单增删改查接口的示例代码

    koa+mongoose实现简单增删改查接口的示例代码

    这篇文章主要介绍了koa+mongoose实现简单增删改查接口的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • node.js [superAgent] 请求使用示例

    node.js [superAgent] 请求使用示例

    这篇文章主要介绍了node.js [superAgent] 请求使用示例,分别给大家汇总了post请求、get请求、delete请求和put请求的示例,推荐给大家,希望大家能够喜欢。
    2015-03-03
  • node连接MySQL数据库的3种方式总结

    node连接MySQL数据库的3种方式总结

    现在前端基本上都会用一些NodeJs,想必也想自己写一些API或者个人博客的后台系统,这些就离不开连接数据库的问题,下面这篇文章主要给大家介绍了关于node连接MySQL数据库的3种方式,需要的朋友可以参考下
    2022-08-08
  • koa大型web项目中使用路由装饰器的方法示例

    koa大型web项目中使用路由装饰器的方法示例

    这篇文章主要介绍了koa大型web项目中使用路由装饰器的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论