zoukankan      html  css  js  c++  java
  • 内存管理

    1.前端为什么要关注内存

    • 任何一个程序的运行都需要分配的内存空间,而任何一个页面, 如果一些不需要的内存没有得到及时的释放,我们称之为内存泄漏,一次内存泄漏可能不会造成大的问题,但是内存泄漏堆积就会造成内存溢出
    • 防止页面占用内存过大,引起客户端卡顿,甚至无响应
    • Nodejs 使用V8引擎,内存对于后端服务的性能至关重要,因为后端服务的持久性,后端更容易造成内存溢出

    2..js数据类型与js内存机制

    • 原始数据类型: 字符串(String),数字(Number),布尔(Boolean),空对象(Null), 未定义(Undefined), Symbol
    • 引用数据类型: Object
    • 内存空间: 栈内存(stack), 堆内存(heap)
    • 栈内存: 栈只能从栈顶单向传给栈底,原始数据类型的大小是固定的
    • 堆内存:对于数组和对象的大小是不固定的
     
    3.垃圾回收机制
    • 找出那些不再接着使用的变量,然后释放其所占用的内存,垃圾回收器会按照固定的时间间隔周期性地执行这一操作
    • js使用垃圾回收机制来自动管理内存,垃圾回收是一把双刃剑
    优势:可以大幅简化程序的内存管理代码,降低程序员的负担,减少因长时间运转而带来的内存泄漏问题
    不足:意味着程序员将无法掌控内存,js没有暴露任何关于内存的api,我们无法强迫其进行垃圾回收更无法干预内存管理
     
    4.V8引擎的内存管理机制
    限制内存的原因:
    • V8最初为浏览器而设计,不太可能遇到大量内存的使用场景
    • 防止因为垃圾回收所导致的线程暂停执行的时间太长
     
  • 相关阅读:
    Nginx 高级配置
    nginx安装和优化配置
    location语法介绍
    iptables
    通过 loganalyzer 展示数据库中的系统日志
    ubuntu_server16.04详细安装步骤
    内存控制mmap的原型和使用方法
    C语言中open函数read函数lseek函数是如何使用的
    gdb调试工具的基本使用
    C语言如何制作静态库
  • 原文地址:https://www.cnblogs.com/W-Wait/p/12341474.html
Copyright © 2011-2022 走看看