我尝试了一些简单变量的内存使用,遇到了意想不到的结果,请看这段代码:
$datetimes = [];
$memory_before = memory_get_usage();
for ($x = 0; $x < 1000; $x++) {
$datetimes[] = new \DateTime();
}
var_dump('DateTimes: ' . (memory_get_usage() - $memory_before));
$ints = [];
$memory_before = memory_get_usage();
for ($x = 0; $x < 1000; $x++) {
$ints[] = $x;
}
var_dump('Integers: ' . (memory_get_usage() - $memory_before));
Run Code Online (Sandbox Code Playgroud)
我得到这个输出(在 PHP 7.4,64 位):
string(17) "DateTimes: 350504"
string(15) "Integers: 37160"
Run Code Online (Sandbox Code Playgroud)
1000 个整数的 37 KB 内存对我来说没有意义,对吧?我期望 8000 字节加上一些数组开销。
我的实验规模:对于一百万个整数,我得到 33558808 字节的内存使用量。
我已禁用 xdebug。
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |