php数组占用多少内存吗,PHP数组实际占用内存大小原理解析

这篇文章主要介绍了PHP数组实际占用内存大小原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G。下面我们可以粗略的估算PHP数组占用内存的大小,首先我们测试1000个元素的整数占用的内存:

echo memory_get_usage() , '
';

$start = memory_get_usage();

$a = Array();

for ($i=0; $i<1000; $i++) {

$a[$i] = $i + $i;

}

$mid = memory_get_usage();

echo memory_get_usage() , '
';

for ($i=1000; $i<2000; $i++) {

$a[$i] = $i + $i;

}

$end = memory_get_usage();

echo memory_get_usage() , '
';

echo 'argv:', ($mid - $start)/1000 ,'bytes' , '
';

echo 'argv:',($end - $mid)/1000 ,'bytes' , '
';

输出是:

353352

437848

522024

argv:84.416bytes

argv:84.176bytes

大概了解1000 个元素的整数数组需要占用 82k 内存,平均每个元素占用 84 个字节。而纯 C 中整体只需要 4k(一个整型占用4byte * 1000 )。memory_get_usage() 返回的结果并不是全是被数组占用了,还要包括一些 PHP 运行本身分配的一些结构,可能用内置函数生成的数组更接近真实的空间:

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值