js的event-loop机制
event-loop主要有三部分组成 执行栈,消息队列、微任务队列
执行优先级是 执行栈>微任务队列>消息对系列
js是单线程语言,event loop开始时会从全局栈开始一行一行执行,遇到函数调用,则压入执行栈执行,叫做帧,当函数返回后会从执行栈弹出,直到函数执行完毕,执行栈清空。在这里setTimeout/setInterval/fetch函数的回调函数进入消息队列、promise/async await执行的异步函数的回调函数进入微任务队列等待执行。当执行栈清空后,微任务队列会先进入执行栈执行,然后消息队列任务进入执行栈执行,最后执行完毕清空执行栈。

js内存泄漏
不再用到的内存,没有及时释放就叫做内存泄漏
了解内存泄露就得先了解js垃圾回收机制,垃圾回收机制常用的方法是标记清除法,语言引擎有一张引用表保存了内存里面所有的堆数据、栈数据的值的引用次数,当这个资源的引用次数变为0时则表示这个值不再用到了,因此可以将这块儿内存释放。
如果某个资源已经不用了.但是引用次数却不为0,这种情况下垃圾回收机制无法释放这块内存,从而导致内存泄漏。
因此那些很占空间的内存,如果不再用到一定要检查是否还有地方在引用,如果是的话必须手动解除占用。即给变量赋值为null
经常引起内存泄漏的情况
1、闭包 2、setTimeOut,setInterval未清空,3、js改变DOM例如添加节点和元素

js的event loop/js内存泄漏相关推荐

  1. 对于怎么理解js中Event Loop,你可以看这篇文章

    javascript中event loop是什么 声明 源文档地址 介绍 如何你跟我一样的话,那么你一定会爱上javascript!虽然它不是一种比较完美的编程语言,但是严格地说,还有其它比javas ...

  2. nuxt.js之SSR服务端内存泄漏导致CPU过高的解决过程

    问题 最近在公司维护nuxt项目时,线上遇到了一个问题--访问网站,网站会报502或者JS.css资源报502. 去运维那一查pm2,项目node服务器的CPU达到了100%,实际上这段时间并没有人访 ...

  3. 理解Node.js的event loop

    为什么80%的码农都做不了架构师?>>>    关于Node.js的第一个基本概念是I/O操作开销是巨大的: 所以,当前变成技术中最大的浪费来自于等待I/O操作的完成.有几种方法可以 ...

  4. 深入浅出JS—03 函数闭包和内存泄漏

    闭包指的是JavaScript中的一种特殊函数,它引用了外层作用域中的变量. 文章目录 函数是JS中的一等公民

  5. 排查 Node.js 服务内存泄漏,没想到竟是它?

    背景 团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查.服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间 ...

  6. 为什么JS是单线程?JS中的Event Loop(事件循环)?JS如何实现异步?setimeout?

    https://segmentfault.com/a/1190000012806637 https://www.jianshu.com/p/93d756db8c81 首先,请牢记2点: (1) JS是 ...

  7. 彻底理解 JS Event Loop(浏览器环境)

    最近罗列了一些软件开发基础知识点,计划逐一的.彻底的理解每一个知识点,并为每个知识点写一篇详细的,图文并茂的文章.这篇是关于浏览器环境下 JS 的 Event Loop 机制(如有错误,欢迎指出). ...

  8. 由哪个log先输出引出的event loop思考

    这篇文章就不再聊关于promise的各种好处和用法了,如果不了解请自行Google啦! 我相信很多人在面试的时候遇到过这样一道面试题: console.log(0) let p = Promise.r ...

  9. 【朴灵评注】JavaScript 运行机制详解:再谈Event Loop

    PS: 我先旁观下大师们的讨论,得多看书了~ 别人说的:"看了一下不觉得评注对到哪里去,只有吹毛求疵之感. 比如同步异步介绍,本来就无大错:比如node图里面的OS operation,推敲 ...

最新文章

  1. 实验五 oracle高级数据查询技术
  2. 我的网站搭建: (第一天) 模型设计
  3. linux安装vi 插件,Ubuntu上Vim安装NERDTree插件的详细操作步骤
  4. android如何查看分区信息,android如何查看分区信息
  5. php适配器模式应用,什么是适配器模式,它有哪些应用场景
  6. iOS之给WebView导航栏添加“返回”与“关闭”按钮
  7. linux系列之 SSH
  8. 读取图片测试_精品:固态硬盘进阶知识:寿命篇:(一)22TB地狱级写入测试...
  9. 通信值勤维护管理条例_加强固定通信台站值勤管理与建设
  10. 额度降为0剩下欠款怎么办?
  11. 按键精灵开发传奇手游教程-现在比较火的美杜莎传奇为例
  12. CleanMyMac X清理苹果mac特殊的软件授权权限问题如何解决
  13. 互联网思维笔记(一)
  14. 使用Java操纵Excel表格
  15. 特斯拉新董事长:在我看来马斯克发推特很明智
  16. 迷宫系列(四)其他细节和DFS的实际应用(重要)
  17. 【MATLAB库函数系列】resample(重采样函数)的C语言实现【姊妹篇2纯C语言实现】
  18. cocos2dx android游戏防破解总结
  19. win7电脑便签删了还能恢复么
  20. C语言数据结构课程设计任务书

热门文章

  1. socket通信函数
  2. Json格式字符串转字典
  3. 偶感——自我世界•现实•世俗
  4. mysql的reorg_DB2 runstats和reorg操作
  5. 免费的音频格式转换器有哪些?不妨试试这几种转写软件
  6. 看这玩意复习你还会挂科?《数据结构篇》
  7. 11月钓鱼网站简报:阿里巴巴占比居首 新网次之
  8. MySQL如何退出命令行
  9. c++语言中string类型,c++string类型占几个字节
  10. direct do造句 sb to_wish sb to do造句