zoukankan      html  css  js  c++  java
  • Node 内存控制

    • Node 只能使用部分内存,原因:
      node 基于 V8 构建,V8 的内存管理机制限制了内存的用量。
      在实际的使用中,不小心触碰到这个内存界限,会造成进程退出。
      V8 是通过堆来进行内存分配的;在代码中声明对象并赋值时,所使用对象的内存就分配在堆中;如果已申请的堆空闲内存不够分配新的对象,将继续申请堆内存,直到堆的大小超过 V8
      的限制为止。
      V8 为何要限制堆的大小?原因是 V8 的垃圾回收机制的限制。
      垃圾回收会引起 JavaScript 线程暂停执行;内存太大,垃圾回收时间太长,在当时的考虑下,直接限制了堆内存大小。
      这个内存限制能打开,node 在启动时传递 --max-old-space-size 或 --max-new-space-size 来调整内存限制的大小,示例如下:
      node --max-old-space-size=1700 test.js
      或者
      node --max-new-space-size=1024 test.js
      上述参数在V8初始化时生效,一旦生效就不能再动态改变。

    • V8 的垃圾回收机制
      v8 的垃圾回收策略,主要基于分代式垃圾回收机制
      在 v8 中,主要将内存分为新生代老生代两代。
      v8 堆的整体大小,就是新生代所用内存空间加上老生代所用内存空间。
      默认分配内存大小:

    系统生代 老生代 新生代(默认) 新生代(最大)
    64位系统 1400MB 32MB 64MB
    32位系统 700MB 16MB 32MB
  • 相关阅读:
    自我介绍
    注册表代码
    圣杯布局
    css的颜色设置
    c语言:第二次作业,循环结构
    c语言:第一次作业,分支,顺序结构
    C语言博客作业03函数
    第零次作业
    用JSP判断输入是质数还是非质数
    用JSP完成输入整形,单精度浮点数,双精度浮点数
  • 原文地址:https://www.cnblogs.com/cag2050/p/9795248.html
Copyright © 2011-2022 走看看