zoukankan      html  css  js  c++  java
  • 原来PHP对象比数组用更少的内存

    一直以为php的数组更节省内存,从来没有测试过,今天因为要读取一个大配置文件作为pool。做了一次测试;

    得出结论是 使用对象保存数据更好,花费的内存是数组array的1/4。

    测试代码

    
    class obj
    {
        public $name;
        public $id;
    
        public function __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}个数组(默认key)内存消耗".($new-$old)."
    ";
    
    $old = memory_get_usage();
    for ($i=0;$i<$max;$i++){
        $arrayList[] = ["id"=>$i,"name"=>$max];
    }
    $new = memory_get_usage();
    echo "{$max}个数组(和对象可以互相转换的)内存消耗".($new-$old)."
    ";
    
    $old = memory_get_usage();
    for ($i=0;$i<$max;$i++){
        $objectList[] = new obj($i,$max);
    }
    $new = memory_get_usage();
    echo "{$max}个对象内存消耗".($new-$old)."
    ";
    

    结果

    
    10000个数组(默认key)内存消耗             4288440
    10000个数组(和对象可以互相转换的)内存消耗  4284288
    10000个对象内存消耗                      1451320
    

    大概比例

    
    array:object = 4:1
    

    越是复杂的数组,用过同等对象保存,内存小更多

    原文地址:https://segmentfault.com/a/1190000016060455

  • 相关阅读:
    ##微信登陆,给大家分享一个第三方登陆
    ##Solr的各种版本下载
    ##redis在linux上的安装详解
    ##activeMq的简介与安装
    ##Springboot框架--配置文件介绍
    论面向服务架构及其应用
    MVC架构模式
    第八周总结
    细化架构阅读笔记
    第五周总结
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9974942.html
Copyright © 2011-2022 走看看