PHP内存管理

来源:互联网 发布:国产有限元分析软件 编辑:程序博客网 时间:2024/05/16 08:38

PHP使用引用计数 和 写时复制来管理内存

 

 

 

前者用来控制当变量不需要时,释放内存

 

后者用来控制在复制变量时不再分配内存

 

具体为:

 

PHP在管理内存时,引入符号表(symbol table)的思想,即变量分为变量名和变量值,符号表是一个将变量

 

名映射到内存中变量值所在地址的数组。

 

当在复制变量时,PHP没有分配内存,而是更新符号表来说明“这两个变量都是存在同一个内存块的名字”。

 

但当其中的一个变量被重新赋值或者修改值时,则分配新的内存给被改变的变量;--这就是写时复制管理。

 

符号表指向的每一个值都有一个引用计数(reference counting),他的数值表示取得那块内存的途径数

 

目,即有几个变量名,当一个变量被复制时,则引用计数为2,当复制的其中一个被修改值时,引用计数则为

 

1。当一个变量声明范围结束时(比如局部变量),则引用数为0,这时候则释放内存。

 

 

原创粉丝点击