查看file_get_contents
我看到文档声明它会将文件作为字符串加载到内存中,但file()
会为它创建的数组执行此操作吗?
file()
是否将数据存储在RAM中?
答案 0 :(得分:1)
是的,PHP将字符串,对象,数组等存储在内存中,除非明确存储到磁盘中。
这是一个关于内存阵列实际使用量的一个很好的测试案例:http://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html
来自文章:
<?php
$startMemory = memory_get_usage();
$array = range(1, 100000);
echo memory_get_usage() - $startMemory, ' bytes';
您期望它多少钱?简单,一个整数是8个字节(打开 一个64位的unix机器和使用长型)你得到100000 整数,所以你显然需要800000字节。那是件好事 像0.76 MB一样。
现在尝试运行上面的代码。如果你愿意,你可以在线完成。这个 给了我14649024字节。是的,你听到了,这是13.97 MB - 是我们估计的十八倍。