垃圾回收(GC)算法介绍(1)——GC标记-清除算法

在编程领域,垃圾回收(Garbage Collection),简称GC(简便起见,以下都把垃圾回收用GC代替)。GC负责把堆上不用的内存进行回收,以便之后可以再次进行分配。回忆一下C中对内存申请,一般来说malloc和free需要成对地出现,malloc为对象申请内存空间,free负责释放申请的内存空间。但如果只有malloc但却不free,就会造成堆上的内存无法回收,造成内存泄漏。

阅读全文

Python中的generator和yield

Python中的generator(生成器)是一个很强大的概念,generator function(生成器函数)被调用后会返回一个生成器。需要注意的是,generator function在被调用时,并不会真正地执行,而是返回一个generator。要想执行这个generator,有两种方式:for循环或手动调用generator的next方法。

阅读全文