[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: размер массива
Invis1ble
Доброго времени суток. Возник вопрос: вообще реально ли посчитать размер массива в php ?
Я имею ввиду размер занимаемой памяти. Что-то нигде не могу найти ответа на этот вопрос.
Если реально, прошу подсказать с алгоритмом / кодом.
Заранее всем спасибо.



Спустя 40 минут, 25 секунд (24.02.2011 - 10:29) linker написал(а):
$begin = memory_get_usage();
$a = array();
echo memory_get_usage() - $begin;

Спустя 17 минут, 51 секунда (24.02.2011 - 10:46) Invis1ble написал(а):
linker
была такая мысль, но подумал что есть какое-то другое решение

Спустя 1 час, 33 минуты, 19 секунд (24.02.2011 - 12:20) linker написал(а):
К сожалению PHP ограничен в этом смысле. В других языках обычно присутствует функция sizeof() которая отдает размер занимаемой памяти переменной. Но в PHP эта функция является аналогом count() и отдает количество элементов в массиве.

Спустя 3 часа, 23 минуты, 34 секунды (24.02.2011 - 15:43) Invis1ble написал(а):
linker
какая-то непонятная хрень происходит.... Никак не могу понять, в чем дело... Написал тестовый код:
function getMemoryAllocated($var) {
$memory_usage_before = memory_get_usage();
$var_clone = $var;
$memory_allocated = memory_get_usage() - $memory_usage_before;
unset($var_clone, $memory_usage_before);
return $memory_allocated;
}

$arr = range(1, 1000);
echo getMemoryAllocated($arr) . '<br />';

$arr = array(1);
echo getMemoryAllocated($arr) . '<br />';

$arr[] = range(1, 100);
echo getMemoryAllocated($arr);

его результаты постоянно одинаковы:
44
44
44

Такое ощущение, что кешируется результат функции memory_get_usage()... Хотя, даже если предположить, что так оно и есть, все же не понятно, почему при размере массива в 1000 элементов он занимает всего 44 байта....
В чем может быть проблема?

Спустя 4 минуты, 7 секунд (24.02.2011 - 15:47) linker написал(а):

Спустя 4 минуты, 2 секунды (24.02.2011 - 15:51) Invis1ble написал(а):
linker
Чесно говоря я с английским на особо дружу.... Не мог бы ты пояснить в кратце?

Спустя 2 минуты, 15 секунд (24.02.2011 - 15:54) linker написал(а):
См. комменты, там много интересного.

Спустя 13 минут (24.02.2011 - 16:07) Invis1ble написал(а):
linker
huh.gif посмотрел... Но там вроде ничего не упоминается о подобной проблеме, насколько я понял.. unsure.gif

Спустя 6 минут, 41 секунда (24.02.2011 - 16:13) linker написал(а):
Там есть примеры получения размера используемой памяти используя внешние программы.
http://ru2.php.net/manual/en/function.memo...usage.php#64156


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.