造成循环引用的简单理解是:Block的拥有者在Block作用域内部又引用了自己,因此导致了Block的拥有者永远无法释放内存,就出现了循环引用的内存泄漏 示例代码 再看下面的例子 ...
分类:
其他好文 时间:
2019-07-10 10:54:42
阅读次数:
100
1、内存的生命周期 无论你使用那种语言,内存的生命周期基本是都差不多:分配内存 —— 使用内存 —— 释放内存,以下是生命周期中每一步发生了什么的一个概述: Allocate memory —— 操作系统分配内存,允许你的程序使用它。在基础语言中(例如 C ),这是一个开发者自己处理的明确操作。然而 ...
分类:
其他好文 时间:
2019-07-05 00:08:15
阅读次数:
95
Java垃圾回收机制算法 为什么要进行垃圾回收 因为当一个对象的引用不可达,或者一个对象没有任何引用指向它,那么它就没有必要在内存中继续存在,此时它就处于可以被GC(垃圾回收器)回收的对象,jvm虚拟机动态的收集不可用的对象,达到释放内存的目的。 垃圾回收区域 通常情况下的jvm虚拟机把内存都分为了 ...
分类:
编程语言 时间:
2019-07-02 00:29:03
阅读次数:
135
标签: C++ 1. 类的初始化 几种不同初始化的区别: A a;和A *a=new A()的区别,示例程序如下: 执行结果如下,通过A a1("gqx")形式初始化的对象,在程序结束的时候会自动回收内存,调用析构函数,而通过new方式初始化的对象需要手动释放内存。 修改主程序如下后: 执行结果如下 ...
分类:
编程语言 时间:
2019-07-01 21:34:52
阅读次数:
154
[TOC] 内存分配和释放 STL中有两个分配器,一级分配器和二级分配器,默认使用二级分配器,使用二级分配器分配大内存时会调用一级分配器去执行,一级分配器使用malloc和free分配和释放内存。如果分配小内存那么二级分配器会从内存池中进行查找,防止malloc/free的开销。 为了了解原理,不深 ...
分类:
其他好文 时间:
2019-06-27 00:40:46
阅读次数:
123
Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内 ...
分类:
编程语言 时间:
2019-06-25 13:28:12
阅读次数:
114
1. 简述Python垃圾回收机制: 当x=10,赋值x=11,的代码,也就是10没有对应的变量名, 10在python眼中相当于垃圾,就会被清理掉,释放内存. 2. 对于下述代码: 10 的引用计数为多少? 应用计数为2 x对应的变量值257的引用计数为多少? 应用计数1 3. 简述Python小 ...
分类:
编程语言 时间:
2019-05-20 21:15:25
阅读次数:
122
Linux手动释放缓存的方法Linux释放内存的命令:syncecho 1 > /proc/sys/vm/drop_caches drop_caches的值可以是0-3之间的数字,代表不同的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和inodes3:释放所有缓存 释放完内存 ...
分类:
系统相关 时间:
2019-05-20 19:12:48
阅读次数:
185
一、垃圾回收:将内存不在使用的数据进行清理,释放内存空间 v8将内存分为新生代空间和老生代的空间 新生代空间:用于存活较短的对象 :又分为二个空间:from空间和to空间 :Scavenge GC算法:当 from 空间被占满时,启动 GC 算法 存活的对象从 from space 转移到 to s ...
分类:
其他好文 时间:
2019-05-15 16:05:23
阅读次数:
137
根据Python官方文档,您可以强制垃圾收集器释放未引用的内存gc.collect()。例: import gc gc.collect() 根据Python官方文档,您可以强制垃圾收集器释放未引用的内存gc.collect()。例: import gc gc.collect() 根据Python官方 ...
分类:
编程语言 时间:
2019-05-12 10:49:45
阅读次数:
214