当前位置: 首页 > 后端技术 > PHP

事实证明,PHP对象比数组使用更少的内存

时间:2023-03-29 18:10:30 PHP

我一直认为PHP数组更节省内存。我从来没有测试过它。今天,我想读取一个大的配置文件作为一个池。我做了一个测试;我的结论是用对象来保存数据比较好,内存开销是array数组的1/4。测试代码classobj{public$name;公共$id;公共函数__construct($id,$name){$this->name=$name;$this->id=$id;}}$max=10000;$old=memory_get_usage();for($i=0;$i<$max;$i++){$arrayList[]=[$i,$max];}$new=memory_get_usage();echo"{$max}Array(defaultkey)内存消耗".($new-$old)."\n";$old=memory_get_usage();for($i=0;$i<$max;$i++){$arrayList[]=["id"=>$i,"name"=>$max];}$new=memory_get_usage();echo"{$max}数组(以及可以转换为的对象彼此)内存消耗".($new-$old)."\n";$old=memory_get_usage();for($i=0;$i<$max;$i++){$objectList[]=newobj($i,$max);}$new=memory_get_usage();echo"{$max}对象内存消耗".($new-$old)."\n";结果是10000个数组(默认key)内存消耗428844010000个数组(和对象可以互换)内存消耗428428810000个对象内存消耗1451320近似比array:object=4:1数组越复杂,使用同一个对象保存,内存较小