最近用PHP读取一个大文件把相关数据存放到数组中,之后处理并输出, 读取过程中发现占用内存很大, 于是很好奇这个问题。
简单的写一个代码
<?php
$m1 = memory_get_usage();$arr = array(
);$m2 = memory_get_usage();$arr2 = array(
'testa'=>'hello world1',
'testb'=>'hello world2',
);$m3 = memory_get_usage();echo $m1.PHP_EOL;
echo $m2.PHP_EOL;
echo 'usage: '.($m2-$m1), PHP_EOL;
echo $m3.PHP_EOL;
echo 'usage: '.($m3-$m2), PHP_EOL;
结果如下
92216
92656
usage: 440
93432
usage: 776
memory_usage的单位是B(Byte), 也就是一个空数组是440B, 有内容以后是776B, 还是很占内存的。