当我测试时array_map()功能时。有一个很奇怪的现象。
正常大小的数组
$array = range(1, 100000);
echo memory_get_usage();
array_map(function($value) {}, $array);
echo memory_get_usage();
Run Code Online (Sandbox Code Playgroud)
结果
8649024
8649024
Run Code Online (Sandbox Code Playgroud)
很明显,内存大小是相等的。
但对于大数组
$array = range(1, 10000000);
echo memory_get_usage();
array_map(function($value) {}, $array);
echo memory_get_usage();
Run Code Online (Sandbox Code Playgroud)
结果
84319040
Run Code Online (Sandbox Code Playgroud)
致命错误:第 6 行 G:\phpStudy\WWW\testSpeed.php 中允许的内存大小 134217728 字节已耗尽(尝试分配 36 字节)
为什么?我到处都有搜索答案。但似乎很少有人有这个问题。如果有人可以帮助我吗?谢谢你!