本章小结
本章主要研究探讨了 PHP 7 的内存管理的实现,我们将内存管理比作面包店,可以有利于读者形象地理解内存池管理。
假定场景:
① 面包店;② 各种规格大小的面包;③ 成袋的面粉;④ 存储面粉的仓库。
我们向系统申请内存,就好比去面包店购买面包,那么面包店会如何做呢?
我们到面包店要购买一个牛角面包,一种比较差的办法是,面包店的工作人员去仓库里取一袋面粉,然后和面、作模、烘焙、最后出炉,这类似于 malloc。顾客需要等待一定的时间,另外每次只烘焙一个面包,效率是很低的。
实际面包店的做法是事先做好不同品种的面包,当顾客购买面包时,选择某种规格的即可。这非常类似于内存管理中的 small 内存,建立一些规格的内存,当申请者申请时,返回最小的符合申请者要求的内存。那么对于 large 内存,一个 page 类似于一整袋面粉,而 chunk 则相当于仓库里摆放 512 袋面粉的货架。这样类比起来更容易理解,并且感受到了技术都来源于生活。