Как узнать количество памяти отведенной под массив?

deepslam

Новичок
Как узнать количество памяти отведенной под массив?

Всем привет!
Оптимизирую код, смотрю быстродействие с помощью XDebug, но созрел глупый вопрос: как узнать сколько занимает в памяти массив, либо просто переменная?

Заранее респект за ответ!
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
[m]memory_get_usage[/m]

-~{}~ 06.07.07 23:06:

Мануал рулит.
 

deepslam

Новичок
Хм,

Fatal error: Call to undefined function: memory_get_usage() in z:\home\testy.ru\www\modules\structure.class.php on line 1720
PHP 4.4.4 , Denwer

P.S. Как я понял эта функция возвращает кол-во памяти, используемое скриптом, а нет ли функции, которая покажет инфу именно по переменной?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Fatal error: Call to undefined function: memory_get_usage() in z:\home\testy.ru\www\modules\structure.class.php on line 1720
Курим мануал.

а нет ли функции, которая покажет инфу именно по переменной?
А вызвать до и после инициализации переменной релилия не позволяет?
 

iceman

говнокодер
Fatal error: Call to undefined function: memory_get_usage() in z:\home\testy.ru\www\modules\structure.class.php on line 1720
PHP:
<?php
if( !function_exists('memory_get_usage') )
{
    function memory_get_usage()
    {
        //If its Windows
        //Tested on Win XP Pro SP2. Should work on Win 2003 Server too
        //Doesn't work for 2000
        //If you need it to work for 2000 look at http://us2.php.net/manual/en/function.memory-get-usage.php#54642
        if ( substr(PHP_OS,0,3) == 'WIN')
        {
               if ( substr( PHP_OS, 0, 3 ) == 'WIN' )
                {
                    $output = array();
                    exec( 'tasklist /FI "PID eq ' . getmypid() . '" /FO LIST', $output );
       
                    return preg_replace( '/[\D]/', '', $output[5] ) * 1024;
                }
        }else
        {
            //We now assume the OS is UNIX
            //Tested on Mac OS X 10.4.6 and Linux Red Hat Enterprise 4
            //This should work on most UNIX systems
            $pid = getmypid();
            exec("ps -eo%mem,rss,pid | grep $pid", $output);
            $output = explode("  ", $output[0]);
            //rss is given in 1024 byte units
            return $output[1] * 1024;
        }
    }
}
?>
 

Franzusow

Новичок
Автор оригинала: deepslam
P.S. Как я понял эта функция возвращает кол-во памяти, используемое скриптом, а нет ли функции, которая покажет инфу именно по переменной?
$start= memory_get_usage() ;
$a="Manual";
echo memory_get_usage()-$start . "\n";

chitaj tak zhe primery!
http://de3.php.net/manual/ru/function.memory-get-usage.php#64156
 

deepslam

Новичок
Mr_Max
Будь проще, я просто спросил )

iceman
Спасибо огромное!!!
 

iceman

говнокодер
А вызвать до и после инициализации переменной релилия не позволяет?
методом тыка проверишь сколько у тебя весит 1 символ... 1 цифра и т.д.

патом создашь функцию которая будет бегать по массиву и считать символы и т.д.

-~{}~ 07.07.07 01:04:

Спасибо огромное!!!
не мне спасибо... этот код опубликован в ссылке которую дал Mr_Max - просто надо читать и комментарии, там много чего полезного есть...
 

deepslam

Новичок
Оке, в общем всем спасибо огромное, свою проблемку я практически решил ) Теперь уже дело за мной )
 

HraKK

Мудак
Команда форума
if ( substr(PHP_OS,0,3) == 'WIN')
{
if ( substr( PHP_OS, 0, 3 ) == 'WIN' )
{

И поглатила меня пучина небытия....
 

Franzusow

Новичок
<<а как совсем правильно? >>
ne znaju kak sovsem pravilno,
no rassmatrivat' script kak kuchku bukv i zyfr, eto ne verno, tak kak v interpreter-language PHP trebuetsja ne tolko kolichestvo bukv i zifr, no i pamjat' dlja sozdanija Imja peremenoj ili masiva
 

HraKK

Мудак
Команда форума
Эта тема меня точно заставит плакать )

Franzusow
Спасыба, посмеялса!
 

deepslam

Новичок
На XP Home Edition и Денвере не работают эти функции (((
На хостинге всё оки
 
Сверху