一、什么是GC GC是jvm的垃圾回收,垃圾回收的规律和原则为: 次数上频繁收集新生区(Young) 次数上较少收集养老区(Old) 基本上不动永久区(Perm) 二、GC算法(分代收集算法) GC总共有四大算法,分别是: ①引用计数法 ②复制算法(Copying) ③标记清除(Mark Sweep ...
分类:
编程语言 时间:
2020-01-20 19:03:24
阅读次数:
107
一、引用计数算法: 判断对象的引用数量: 通过判断对象的引用数量来决定对象是否可以被回收; 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1; 任何引用计数为0的对象实例可以被当作垃圾收集; 优缺点: 优点:执行效率高,程序执行受影响较小; 缺点:无法检测出循环引用的情况,导致内存泄漏; ...
分类:
其他好文 时间:
2020-01-18 10:53:03
阅读次数:
68
一、__del__方法称为"析构方法",用于实现对象被销毁时所需的操作。比如:释放对象占用的资源,例如:打开的文件资源网络连接等。python实现自动的垃圾回收,当对象没有被引用时(引用计数为0),有垃圾回收器调用__del__方法。我们也可以通过del语句删除对象,从而保证调用__del__方法。 ...
分类:
编程语言 时间:
2020-01-13 12:48:17
阅读次数:
104
什么是内存泄露? 内存泄露是那些使用过后,应该被清理却没有被清理的内存一直占据着系统资源,通过长时间的累积导致系统崩溃。 Python的垃圾回收机制 1、引用计数 原理:当一个对象的引用被创建或者复制时,对象的引用计数+1,当一个对象的引用被销毁时,对象的引用计数-1,当对象的引用计数变为0时,就意 ...
分类:
编程语言 时间:
2020-01-11 11:34:37
阅读次数:
78
1、对象被判断为垃圾的标准 没有被其它对象引用 2、判断对象是否为垃圾的算法 1)引用计数算法 2)可达性分析算法 3、引用计数算法 1) 通过判断对象的引用数量来决定对象是否可以被回收 2)每个对象实例都有一个引用计数器,被引用则+1, 完成引用则-1 3) 任何引用计数为0的对象实例可以被当作垃 ...
分类:
编程语言 时间:
2020-01-09 22:54:08
阅读次数:
94
本文主要从 JS 中为什么会出现循环引用,垃圾回收策略中引用计数为什么有很大的问题,以及循环引用时的对象在使用 JSON.stringify 时为什么会报错,怎样解决这个问题简单谈谈自己的一些理解。 1. 什么是循环引用 当对象 1 中的某个属性指向对象 2,对象 2 中的某个属性指向对象 1 就会 ...
分类:
Web程序 时间:
2020-01-09 22:21:51
阅读次数:
114
ARC代码: NSObject *p = [NSObject new]; 编译完的MRC代码: NSObject *temp = [NSObject new]; p = [temp retain]; [temp release]; ARC代码: __weak NSObject *p = [NSObj ...
分类:
其他好文 时间:
2020-01-08 00:43:37
阅读次数:
64
"前言" "内存管理及常见问题" "垃圾回收机制" "引用计数和循环引用" "根可达性算法" "问题" "手动管理内存" "Rust 所有权" "结语" "参考链接" 前言 前段时间带着好奇去看了一下 语言的教程,然后就看到了 中所有权的概念,看的时候就是一句卧槽脱口而出,居然还有这种操作? 感慨完 ...
分类:
其他好文 时间:
2019-12-29 16:29:04
阅读次数:
261
垃圾回收与内存分配策略 "垃圾回收与内存分配策略" "“垃圾”的定义" "对象是否为“垃圾”" "何为“引用” 四种引用类型" "最后的挣扎 finalize()方法" "回收方法区" "垃圾回收算法" "回收的前置 分代理论" "标记 清除算法(Mark Sweep)" "标记 复制算法" "标记 ...
分类:
其他好文 时间:
2019-12-28 23:11:43
阅读次数:
170
转自:https://www.cnblogs.com/51try-again/p/11099999.html 一、引用计数 1、变量与对象 变量赋值的时候才创建,它可以指向(引用)任何类型的对象 python里每一个东西都是对象,它们的核心就是一个结构体:PyObject 变量必须先赋值,再引用。 ...
分类:
编程语言 时间:
2019-12-28 22:32:11
阅读次数:
92