Здравствуйте Гость!


Запомнить.
Авто. вход.
Забыли пароль?
Регистрация

ПОДПИСКА Подписавшись по E-mail, Вы будете получать уведомления о новых статьях к себе на почту.
Подписатся на почтовую рассылку на сайте astranar.ru
Подписаться



ДОБАВЛЯЙТЕСЬ В ДРУЗЬЯ Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте на стене моего аккаунта.
Мой аккаунт Вконтакте
Мой аккаунт
Главная - PHP - Сколько памяти занимает исполняемый код? Разберемся!


Сколько памяти занимает исполняемый код? Разберемся!


Сколько занимает памяти исполняемый код? пример php кода

Доброго времени суток всем! Недавно при разработке одного проекта мне понадобилось контролировать размер занимаемой скриптами памяти. И я написал целую систему мониторинга за этим, но вам я даю возможность поработать над этим самим.
Сейчас уже многие начинающие программисты а то уже даже серьезные программисты не используют это, так как ресурсов железа хватает чтобы исполнять даже самый плохой(как ни грубо это звучит - быдлокод). Но так же многие серьезные программисты знают, что при отладке скриптов используют контроль занимаемого места в памяти. Да и не только это. В следующей статье я расскажу еще про одну фишку для правильной и более точной оптимизации скриптов.

А сейчас начнем:
memory_get_usage(); - эта функция возвращает количество занимаемых байт при исполнении кода выше вызова этой функции.

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

function chpu_Bytes($size) {
$filesize = array(" байт", " Киллобайт", " Мегабайт", " Гигабайт", " Террабайт", " Петабайт", " ЭксаБайт", " Зеттабайт", " Йоттабайт");
return $size ? round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesize[$i] : '0 байт';
}

И давайте применим эту функцию:

function chpu_Bytes($size) {
$filesize = array(" байт", " Киллобайт", " Мегабайт", " Гигабайт", " Террабайт", " Петабайт", " ЭксаБайт", " Зеттабайт", " Йоттабайт");
return $size ? round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesize[$i] : '0 байт';
}
$mem = memory_get_usage();
echo memory_get_usage()."";
echo chpu_Bytes($mem);


Давайте теперь разберем код:
round — Округляет число.
pow — Возведение в степень.
floor - Округляет дробь в меньшую сторону.
log — Натуральный логарифм.

А теперь давайте испытаем этот код на деле.
К примеру многие даже не задумываются, что использование пустых значений «сложных» типов (строки, массивы, объекты) ведёт к повышенному потреблению памяти. Использование NULL — самый оптимальный вариант.

Этот код:
function chpu_Bytes($size) {
$filesize = array(" байт", " Киллобайт", " Мегабайт", " Гигабайт", " Террабайт", " Петабайт", " ЭксаБайт", " Зеттабайт", " Йоттабайт");
return $size ? round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesize[$i] : '0 байт';
}
$a = 0;
if (is_null($a)) {
}
$bute = memory_get_usage();
echo memory_get_usage()."";
echo chpu_Bytes($bute);
?>

Работает медленней чем этот:
function chpu_Bytes($size) {
$filesize = array(" байт", " Киллобайт", " Мегабайт", " Гигабайт", " Террабайт", " Петабайт", " ЭксаБайт", " Зеттабайт", " Йоттабайт");
return $size ? round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesize[$i] : '0 байт';
}
$a = NULL;
$bute = memory_get_usage();
echo memory_get_usage()."";
echo chpu_Bytes($bute);

?>

Вы сами можете убедиться.
Если что-либо не понятно, спрашивайте. я постараюсь ответить. Следующая статья будет аналогично - оптимизация php кода.



Просмотров страницы: 2988
Урок добавлен: 17 Февраля 2013

<<<Предыдущая статьяСледущая статья >>>

Копирование материалов разрешается только с указанием автора (Пальгов Олег) и индексируемой прямой ссылкой на сайт (https://astranar.ru/)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/palgov_oleg. Если Вы хотите оценить меня и мою работу, то напишите на стене моего аккаунта ВКонтакте.

Если Вы не хотите пропустить новые материалы на сайте, то Вы можете подписаться на обновления:
Подписаться на обновления


Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Ещё статьи по php:
Операции со строками -> Сравнение строк в php strCmp()
Готовый Движок для своего собственного блога
Как передать несколько значений checkbox?
Как создать поиск на своем сайте, поиск по mysql


Комментарии (0)


Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Сколько памяти занимает исполняемый код? Разберемся!
Не гоняйся за счастьем: оно всегда находится в тебе самом.

Пифагор


Вступайте в группу!