【发布时间】:2012-08-11 23:30:46
【问题描述】:
目前我的应用使用大约 7 MB 内存。
如果我使用strlen(serialize($array)))) 检查它的大小,该数组似乎使用了 700 KB。
如果在我的应用程序中使用此数组,并检查内存使用情况(使用
memory_get_peak_usage()),我会得到 14 MB。如果我不使用它,我会得到 7 MB。
如果这个数组需要 700 KB 序列化,为什么 PHP 需要 7 MB 来存储这个变量?还是我以错误的方式进行基准测试?
【问题讨论】:
-
这个数组/对象中有什么?在内存中表示真实对象可能需要比文本版本更多的分配。
-
所有 utf8 字符及其 ASCII 等效字符的表。好的,但要多 10 倍??
-
如果你使用
memory_get_usage呢?memory_get_peak_usage向您展示peak的使用情况 -
@ellabeauty,你能至少发布一个你所拥有的东西吗?当我们不知道该表的格式时,您不会得到非常具体的答案。
-
使用 memory_get_usage 它要少得多:9 M 和 5 M