Я имею ввиду размер занимаемой памяти. Что-то нигде не могу найти ответа на этот вопрос.
Если реально, прошу подсказать с алгоритмом / кодом.
Заранее всем спасибо.
Спустя 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
какая-то непонятная хрень происходит.... Никак не могу понять, в чем дело... Написал тестовый код:
его результаты постоянно одинаковы:
Такое ощущение, что кешируется результат функции memory_get_usage()... Хотя, даже если предположить, что так оно и есть, все же не понятно, почему при размере массива в 1000 элементов он занимает всего 44 байта....
В чем может быть проблема?
какая-то непонятная хрень происходит.... Никак не могу понять, в чем дело... Написал тестовый код:
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
посмотрел... Но там вроде ничего не упоминается о подобной проблеме, насколько я понял..
посмотрел... Но там вроде ничего не упоминается о подобной проблеме, насколько я понял..
Спустя 6 минут, 41 секунда (24.02.2011 - 16:13) linker написал(а):
Там есть примеры получения размера используемой памяти используя внешние программы.
http://ru2.php.net/manual/en/function.memo...usage.php#64156
http://ru2.php.net/manual/en/function.memo...usage.php#64156
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль