首页 > 其他 > 详细

内存泄漏和堆栈溢出的区别

时间:2021-05-28 19:23:53      阅读:16      评论:0      收藏:0      [点我收藏+]

1.内存泄露

有以下代码执行:


...

<script>
  for(let i = 0; i < i+1; i++){
    console.log(i)
  }
</script>

...

会发生什么现象呢?
1.此时打开浏览器执行此html代码,会发生浏览器卡死现象,只能强制关闭浏览器
2.打开任务管理器,发现cpu占用100%,尤其是运行此代码的浏览器,几乎占满了cpu
*** 明显看出,内存泄漏涉及到了硬件 ***

2.堆栈溢出

有以下代码执行:


...

<script>
  function test(){
    test()
  }
  test()
  console.log(123)
</script>

...

会发生什么现象呢?
1.此时打开浏览器执行此html代码,会看到浏览器报错:
技术分享图片
2.后面的代码没有继续执行
3.浏览器正常使用,没有卡顿,且打开任务管理器可看到浏览器占用cpu没有发生明显变化
*** 明显看出,堆栈溢出没有涉及到硬件,仅是浏览器执行上下文环境的一个异常 ***

内存泄漏和堆栈溢出的区别

原文:https://www.cnblogs.com/zoo-x/p/14823349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!