内存管理、引用计数、、Python的垃圾回收机制、小整数池、执行Python程序的两种方法、变量、常量、 ...
分类:
编程语言 时间:
2019-05-20 19:44:44
阅读次数:
109
一、垃圾回收:将内存不在使用的数据进行清理,释放内存空间 v8将内存分为新生代空间和老生代的空间 新生代空间:用于存活较短的对象 :又分为二个空间:from空间和to空间 :Scavenge GC算法:当 from 空间被占满时,启动 GC 算法 存活的对象从 from space 转移到 to s ...
分类:
其他好文 时间:
2019-05-15 16:05:23
阅读次数:
137
二、垃圾收集 垃圾收集主要是针对堆和方法区进行。 程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。 判断一个对象是否可被回收 1. 引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加 1, ...
分类:
编程语言 时间:
2019-05-12 15:45:08
阅读次数:
149
Java体系的支持 java平台模拟计算机 通过Java api 获取真实的计算机资源 Java语言数据类型与平台无关 Java class 格式严格与虚拟机所处的环境无关 可伸缩性 大型机,嵌入式设备(Java本身就是为了嵌入设计的),桌面级 等都可以找到(api 定制化) 影响平台无关性的因素 ...
分类:
其他好文 时间:
2019-05-12 10:44:57
阅读次数:
109
一:__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作。比如:释放对象 占用的资源,例如:打开的文件资源、网络连接等。 Python实现自动的垃圾回收,当对象没有被引用时(引用计数为 0),由垃圾回收器 调用__del__方法。 我们也可 ...
分类:
编程语言 时间:
2019-05-12 01:49:52
阅读次数:
158
2.1.哪些内存需要回收? jvm的内存结构包含五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中,程序计数器、虚拟机栈、方法栈3个区域随线程而生,随线程而灭,因此这届个区域的内存和回收都具备确定性,就不需要过多回收的问题,因为方法结束时,内存自然就跟着回收了,而java堆区和方法区不一 ...
分类:
其他好文 时间:
2019-05-09 20:23:03
阅读次数:
135
垃圾回收,简称gc。顾名思义,就是废物重利用的意思。再说这个之前先接触一下内存泄露,大概意思就是申请了一块地儿拉了会儿屎,拉完后不收拾,那么那块儿地就算是糟蹋了,地越用越少,最后一地全是屎。说到底一句,用了记得还。一定程度上说,垃圾回收机制就是用来擦屁股的。如果用过C语言,那么申请内存的方式是mal ...
分类:
Web程序 时间:
2019-05-09 18:31:37
阅读次数:
142
'''基本知识: 1. .py文件的结构 2. .py文件的运行加载过程: 1) 初始化, 导入环境 2) 导入必要的modules, 内置模块 3) 从上到下动态运行代码: 1>. 对于定义的语法, 只导入不执行 2>. 调用时才执行 3. .py文件的运行特点: 1) 可以动态的导入module ...
分类:
编程语言 时间:
2019-05-09 13:49:38
阅读次数:
196
参考链接: 0.gc的产生 如下,每帧都在分配内存,为了回收这些没有被引用到的内存,就触发了垃圾回收机制(gc) 1.string 如下,定位到第1帧,字符串赋值和拼接都会触发gc,说明有新对象的产生;但是从第2帧开始就没有gc了,这是因为字符串常量池的存在: https://blog.csdn.n ...
分类:
编程语言 时间:
2019-05-09 00:22:09
阅读次数:
159
互斥锁 1、什么是GIL(global interpreter lock)? GIL是一个互斥锁:保证数据的安全(牺牲效率来获取数据的安全),阻止同一个进程内的多线=线程同时执行(不能并行但是能实现并发)2、为什么会有GIL? 由于cpython解释器的内存管理不是线程安全的(垃圾回收机制的存在) ...
分类:
编程语言 时间:
2019-05-08 16:13:29
阅读次数:
198