php file()将数组放入RAM吗?

时间:2013-08-21 20:33:22

标签: php file function ram

查看file_get_contents我看到文档声明它会将文件作为字符串加载到内存中,但file()会为它创建的数组执行此操作吗?

file()是否将数据存储在RAM中?

1 个答案:

答案 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 -   是我们估计的十八倍。