[PHP-users 34884] メモリ使用量について

choice info @ choice-site.com
2009年 12月 16日 (水) 08:57:10 JST


中出と申します。

PHPのメモリ使用量について教えてください。

<?php
echo memory_get_usage()."\n";
$a = range(1,10000);
echo memory_get_usage()."\n";
unset($a);
echo memory_get_usage()."\n";
?>

上記のようなスクリプトを実行してメモリ使用量をチェック
したところ以下のような結果になりました。

[admin @ sv ~]$ php -f a.php
10728
636352
25024
[admin @ sv ~]$


僕としては、スクリプト開始時のメモリ使用量と、unset後の
メモリ使用量はほぼ同じになるはずではと思うのですが、
2倍以上の差があります。

これは、なぜでしょうか?
また、ほぼ同じにする手段はありますでしょうか?

ちなみに

<?php
echo memory_get_usage()."\n";
$a = str_repeat("Hello", 4242);
echo memory_get_usage()."\n";
unset($a);
echo memory_get_usage()."\n";
?>

のように$aに配列ではなく文字列を入れると

[admin @ sv ~]$ php -f a.php
10744
32040
10824
[admin @ sv ~]$

のようになり納得できる結果となります。

以上、よろしくお願いします。

----



PHP-users メーリングリストの案内