巨大的数组占用的内存空间比应有的多

ell*_*uty 8 php memory arrays

目前我的应用程序使用大约7 MB内存.

如果我检查它的大小,该数组似乎使用700 KB strlen(serialize($array)))).

  • 如果在我的应用程序中使用此数组,并检查内存使用情况(与memory_get_peak_usage())我得到14 MB.

  • 如果我不使用它,我会得到7 MB.

如果此数组需要700 KB序列化,为什么PHP需要7 MB这个变量?或者我以错误的方式做基准测试?

Pee*_*Haa 10

如果这困扰你,你想避开PHP:http://nikic.github.com/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html.PHP数组就像一些生存空间.

如果可能的话你可以使用SplFixedArray,但是那时谁又关心PHP数组占用的空间.如果你正在寻找干净/性能的东西,为什么你首先使用PHP(是的,这来自一个PHP的家伙):)

  • @Petra,没问题!现在我们只需要一个StackOverflow饮酒游戏...... (2认同)