太阳集团tyc5997|官网【中国】有限公司

RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
扫码咨询
关闭右侧工具栏
PHP数组实际占用内存大小原理解析
  • 作者:admin
  • 发表时间:2020-12-16 07:50
  • 来源:未知

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

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

  echo memory_get_usage() , '
';
  $start = memory_get_usage();
  $a = Array();
  for ($i=0; $i&l唐山微信小程序t;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 运行本身分配的一些结构,可能用内置函数生成的数组更接近真实的空间:

Baidu
sogou