垃圾回收的原理


 groot.createElement = function (html, id) {
groot.dynamic[id] = id;
return $(html).append("<input type=‘hidden‘ id=\"" + id + "\">")
}

从上面得代码可以看出

函数在html代码片段的后面加了隐藏的input

并在 groot.dynamic加了添加了一个属性


 function _collection() {//垃圾回收
if (_collect) {
_collect = false;
groot.asyn(function () {
for (var id in groot.dynamic) {
if ($("#" + id).length <= 0) {
delete groot.vms[id];
delete groot.dynamic[id];
}
}
_collect = true;
})
}
}

看下面的回收函数

回收的时候程序会从groot.dynamic循环判断 页面还存在不存在对应的那个input

不存在的话 就说明 对应的html代码不存在了 就需要回收了

垃圾回收的原理,布布扣,bubuko.com

时间: 2024-10-21 15:02:17

垃圾回收的原理的相关文章

JAVA虚拟机垃圾回收算法原理

除了释放不再被引用的对象外,垃圾收集器还要处理堆碎块.新的对象分配了空间,不再被引用的对象被释放,所以堆内存的空闲位置介于活动的对象之间.请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的总空闲空间是足够的.这是因为,堆中没有连续的空闲空间放得下新的对象. 垃圾收集器算法 任何垃圾回收算法都必须做两件事,首先,它必须检测出垃圾对象.其次,它必须回收垃圾对象所使用的堆空间并还给程序.从根对象开始,任何可以被触及的对象都被认为是“活动的”对象(如果正在运行的程序可以访问到根对象和某个对象之间

.NET垃圾回收(GC)原理

转载:http://mp.weixin.qq.com/s?__biz=MjM5MDI5MjAyMA==&mid=203643791&idx=1&sn=f65d23bcf7e270d1e69ac9fc5f648581&scene=1#rd 作为.NET进阶内容的一部分,垃圾回收器(简称GC)是必须了解的内容.本着“通俗易懂”的原则,本文将解释CLR中垃圾回收器的工作原理. 基础知识 托管堆(Managed Heap) 先来看MSDN的解释:初始化新进程时,运行时会为进程保留一

Java垃圾回收工作原理

在C++中,在heap上分配对象比在stack上分配对象更加昂贵.程序需要找到合适的内存块,再返回内存的地址.但是在Java中垃圾回收器显著地提高了在heap上分配对象的速度.听起来会有些怪,但是这就是Java垃圾回收器工作的方式.而且这意味着Java中在heap上分配对象几乎跟其他语言在stack上分配对象一样快. 比如说,C++中heap像是一个院子,每个对象占据自己的地盘.在一些JVM中,Java的heap更像是传送带,每次分配一个对象时,传送带就会往前进一点(而不需要寻找合适的内存空间)

说一说垃圾回收的原理,讲一下过程?

垃圾回收:只回收托管堆中的内存资源,不回收其他资源(数据库连接.文件句柄.网络端口等) 什么样的对象才会被回收?答:没有变量引用的对象 什么时间回收? 系统回收,具体何时回收垃圾由系统自行确定,并不是即时执行回收的 手动调用垃圾回收器GC.Collect();,不建议使用,垃圾回收时会使程序暂停,影响程序性能 回收分为两个阶段: 标记 –> 压缩 基本工作原理就是遍历托管堆中的对象,标记哪些被使用对象(那些没人使用的就是所谓的垃圾), 然后把可达对象转移到一个连续的地址空间(也叫压缩),其余的所

JVM 及 垃圾回收机制原理

JVM Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制.JVM实现了Java语言最重要的特征:即平台无关性.原理:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行.JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就可以在多种平台上不加修改地运行.Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行.因此实

java虚拟机的垃圾回收机制原理

1.常用的算法: a.引用计数法:为每一个对象配置一个整形计数器,当有一个引用时,计数器+1,引用失效时,计数器-1.计数器为0,进行垃圾回收 存在的问题:A对象引用B,B对象引用A.循环引用,无法清除,引起内存泄漏 java的垃圾回收器没有使用该算法 b.标记-清除算法 分标记阶段和清除阶段. 存在问题:释放后的空间不是连续的.内存分配不连续的空间,工作效率较低 c.复制算法 将内存空间分为两块,每次只使用其中一块,垃圾回收时,将正在使用的内存中存活的对象复制到未使用的内存中,然后,清除使用的

.Net 垃圾回收机制原理(一)

英文原文:Jeffrey Richter 编译:赵玉开 链接:http://www.cnblogs.com/yukaizhao/archive/2011/11/23/dot_net_GC_1.html 有了Microsoft.Net clr中的垃圾回收机制程序员不需要再关注什么时候释放内存,释放内存这件事儿完全由GC做了,对程序员来说是透明的.尽管如此,作为一个.Net程序员很有必要理解垃圾回收是如何工作的.这篇文章我们就来看下.Net是如何分配和管理托管内存的,之后再一步一步描述垃圾回收器工作

【译】.Net 垃圾回收机制原理(转)

上一篇文章介绍了.Net 垃圾回收的基本原理和垃圾回收执行Finalize方法的内部机制:这一篇我们看下弱引用对象,代,多线程垃圾回收,大对象处理以及和垃圾回收相关的性能计数器. 让我们从弱引用对象说起,弱引用对象可以减轻大对象带来的内存压力. 弱引用(Weak References) 当程序的根对象指向一个对象时,这个对象是可达的,垃圾回收器不能回收它,这称为对对象的强引用.和强引用相对的是弱引用,当一个对象上存在弱引用时,垃圾回收器可以回收此对象,但是也允许程序访问这个对象.这是怎么回事儿呢

[译]GC专家系列1: 理解Java垃圾回收

原文链接:http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/ 了解Java的垃圾回收(GC)原理能给我们带来什么好处?对于软件工程师来说,满足技术好奇心可算是一个,但重要的是理解GC能帮忙我们更好的编写Java应用程序. 上面是我个人的主观的看法,但我相信熟练掌握GC是成为优秀Java程序员的必备技能.如果你对GC执行过程感兴趣,也许你只是有一定的开发应用的经验:如果你仔细考虑过如何选择合适