美文网首页
开发过程中遇到的内存泄露情况,如何解决的?

开发过程中遇到的内存泄露情况,如何解决的?

作者: xuweiqiang | 来源:发表于2019-06-23 01:20 被阅读0次

开发过程中遇到的内存泄露情况,如何解决的?
1、定义和用法:

内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。C#和Java等语言采用了自动垃圾回收方法管理内存,几乎不会发生内存泄露。我们知道,浏览器中也是采用自动垃圾回收方法管理内存,但由于浏览器垃圾回收方法有bug,会产生内存泄露。

2、内存泄露的几种情况:

(1)、当页面中元素被移除或替换时,若元素绑定的事件仍没被移除,在IE中不会作出恰当处理,此时要先手工移除事件,不然会存在内存泄露。

实例如下:

<div id="myDiv">
<input type="button" value="Click me" id="myBtn">
</div>
<script type="text/javascript">
var btn = document.getElementById("myBtn");
btn.onclick = function(){
document.getElementById("myDiv").innerHTML = "Processing...";
}
</script>
解决方法如下:

<div id="myDiv">
<input type="button" value="Click me" id="myBtn">
</div>
<script type="text/javascript">
var btn = document.getElementById("myBtn");
btn.onclick = function(){
btn.onclick = null;
document.getElementById("myDiv").innerHTML = "Processing...";
}
</script>
(2)、由于是函数内定义函数,并且内部函数--事件回调的引用外暴了,形成了闭包。闭包可以维持函数内局部变量,使其得不到释放。
实例如下:
function bindEvent(){
var obj=document.createElement("XXX");
obj.onclick=function(){
//Even if it's a empty function
}
}
解决方法如下:

function bindEvent(){
var obj=document.createElement("XXX");
obj.onclick=function(){
//Even if it's a empty function
}
obj=null;
}

相关文章

  • Android内存泄露详解

    内存泄露 在开发应用的过程中,我们总会遇到内存泄露的问题。现在通过代码列出一些常见的内存泄露的情况以及解决方案。 ...

  • 开发过程中遇到的内存泄露情况,如何解决的?

    开发过程中遇到的内存泄露情况,如何解决的?1、定义和用法: 内存泄露是指一块被分配的内存既不能使用,又不能回收,直...

  • 安卓开发内存泄露总结

    安卓开发过程中内存泄露是经常遇到的问题。目前比较流行的监测内存泄露的框架就是LeakCanary。 ...

  • iOS 常见内存泄露修复

    iOS 开发过程中内存泄露比较常见,如何发现这些内存泄露呢?我的建议是使用 AMLeaksFinder[https...

  • iOS底层原理

    内存泄露内存泄露是指我们在开发过程中当栈中的指针消失以后,堆中的内存还存在的情况 野指针野指针指的是堆中的内存消失...

  • Android 中常见内存泄露的几种情况

    原文连接 Android 中常见内存泄露的几种情况 我们在开发Android应用时,有时候会遇到程序因占用内存过高...

  • 内存泄漏与优化分析指南

    前言 在android开发中,我们都或多或少的会遇到一些内存泄漏的问题,虽然大都知道哪些情况会导致内存泄露,但是还...

  • 工具:VisualVM

    使用 VisualVM 进行性能分析及调优 概述 开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等...

  • 解决几个常见内存泄露

    1、解决了webview的内存泄露 2、解决了ConnectivityManager的内存泄露,类似的泄露还有Wi...

  • Android 关于内存泄露,你必须了解的东西

    前言 内存管理的目的就是让我们在开发过程中有效避免我们的应用程序出现内存泄露的问题。内存泄露相信大家都不陌生,我们...

网友评论

      本文标题:开发过程中遇到的内存泄露情况,如何解决的?

      本文链接:https://www.haomeiwen.com/subject/slnyqctx.html