Olsufr
Guest
Управление расходом памяти при работе с MySQL
Помогите понять, каким образом используется память PHP-скриптом при запросах к MySQL и каким образом эту память можно было бы сэкономить.
Скрипт:
дает такой результат:
и уменьшить ее не помогли ни mysql_free_result(), ни unset().
Подскажите в чем тут дело.
PHP Version 4.4.2-1
Помогите понять, каким образом используется память PHP-скриптом при запросах к MySQL и каким образом эту память можно было бы сэкономить.
Скрипт:
PHP:
print "memory before query: ". memory_get_usage() . "<br>";
$result = mysql_query($sql);
print "memory after query and before first fetch: ". memory_get_usage() . "<br>";
while ($row = mysql_fetch_array($result)) {
print "=========start row:=========<br>";
print "memory after one fetch: ". memory_get_usage() . "<br>";
print "=========end row=========<br>";
}
print "memory after all fetches: ". memory_get_usage() . "<br>";
mysql_free_result($result);
print "memory after free query: ". memory_get_usage() . "<br>";
print "memory before unset: ". memory_get_usage() . "<br>";
unset($result, $row);
print "memory after unset: ". memory_get_usage() . "<br>";
Т.е. занимаемая PHP память после запроса и его обработки увеличиласьmemory before query: 33264
memory after query and before first fetch: 33536
=========start row:=========
memory after one fetch: 40336
=========end row=========
=========start row:=========
memory after one fetch: 46736
=========end row=========
=========start row:=========
memory after one fetch: 46416
=========end row=========
=========start row:=========
memory after one fetch: 48016
=========end row=========
=========start row:=========
memory after one fetch: 47040
=========end row=========
memory after all fetches: 45224
memory after free query: 45224
memory before unset: 45224
memory after unset: 45224
и уменьшить ее не помогли ни mysql_free_result(), ни unset().
Подскажите в чем тут дело.
PHP Version 4.4.2-1