php stdclass,php中new stdclass()用在什么场景

我常用在保存数据 主要是开销比较小

$obj = new stdClass;

$obj->test = 'abc';

$obj->other = 6.2;

$obj->arr = array (1, 2, 3);

比数组更便捷

测试

$size = 200000;

mark();

$sc = new stdClass;

foreach(range(1,5) as $i){

$sc->$i = pow($i,2);

}

mark();

dump('sc',1);

mark();

foreach(range(1,$size) as $i){

$scn = "sc" . $i;

// $$scn = $sc;

$arr_sc[] = $sc;

}

mark();

dump('sc');

mark();

$arr =[];

foreach(range(1,5 ) as $i){

$arr[] = pow($i,2);

}

mark();

dump('arr',1);

mark();

foreach(range(1,$size) as $i){

$arrn = "arr" . $i;

// $$arrn = $arr;

$arr_arr[] = $arr;

}

mark();

dump('arr');

function dump($var,$size = 200000){

global $mem_size,$times,$$var;

// xdebug_debug_zval($var);

echo "Total:" .round(($mem_size[count($mem_size)-1]-$mem_size[count($mem_size)-2])/pow(1024,2),3) . "Mb "

. "Avg:". round(($mem_size[count($mem_size)-1]-$mem_size[count($mem_size)-2])/(1024*$size),3) . "Kb "

. "Time:". round(($times[count($times)-1] -$times[count($times)-2]),3) ."\n";

}

function mark($type=0){

global $mem_size,$times;

$mem_size[] = memory_get_usage();

$times[] = microtime(true);

}

结果

Total:0.002Mb Avg:1.773Kb Time:0

Total:18.785Mb Avg:0.096Kb Time:0.101

Total:0.001Mb Avg:1.227Kb Time:0

Total:18.785Mb Avg:0.096Kb Time:0.1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值