Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как следить за использованием памяти PHP скриптом?
 
 автор: Eugene77   (30.05.2012 в 05:45)   письмо автору
 
 

Есть ли возможность отследить приближение к пределу выделеной для скрипта памяти и принять меры:
Либо
1. увеличить размер отводимой памяти,
2. сократить аппетиты скрипта

- в зависимости от ситуации.

  Ответить  
 
 автор: Valick   (30.05.2012 в 09:10)   письмо автору
 
   для: Eugene77   (30.05.2012 в 05:45)
 

1. увеличить размер отводимой памяти
только если хостер это Вы
2. сократить аппетиты скрипта
это должно соблюдаться не зависимо от расхода памяти.
скрипт должен быть написан так, что сокращать уже некуда.

  Ответить  
 
 автор: Eugene77   (30.05.2012 в 09:33)   письмо автору
 
   для: Valick   (30.05.2012 в 09:10)
 

>1. увеличить размер отводимой памяти
>только если хостер это Вы
Да, пока скрипт у меня, размер некоторых массивов не хотелось бы ограничивать,
но иногда из-за роста этих массивов скрипт вываливатся с ошибкой переполнения отведённой памяти.

>2. сократить аппетиты скрипта
>это должно соблюдаться не зависимо от расхода памяти.
>скрипт должен быть написан так, что сокращать уже некуда.

Тогда страдает функциональность... Я как раз пытаюсь сейчас найти оптимум между функциональностью и минимумом потребления памяти, и ещё некоторыми моментами.
Точнее, ищу инструменты (функции PHP) которые позволяют сделать такую настройку скрипта.

  Ответить  
 
 автор: Valick   (30.05.2012 в 09:52)   письмо автору
 
   для: Eugene77   (30.05.2012 в 09:33)
 

Тогда страдает функциональность...
когда страдает функциональность, значит что-то не так с логикой скрипта
__
опишите ситуацию, что за рост массивов?

  Ответить  
 
 автор: Eugene77   (30.05.2012 в 11:43)   письмо автору
 
   для: Valick   (30.05.2012 в 09:52)
 

>опишите ситуацию, что за рост массивов?
_________
Это дело пустое - описывать логику - семь вёрст до небес и всё лесом :-)

Это самый сложный в моей жизни скрипт и самая длинная цепочка зависимых классов.
Искусственный интеллект на нейронных цепочках и их производных.
В начале принимаются решения, потом анализируются, рефлексируются, перестраивается структура сознания итп.

В частности, массив истории принятых решений может иногда раздуваться за пределы разумного размера. Но могут быть и другие причины, которые я не могу предугадать.

Лучше подскажите приёмы слежения за размером занятой (оставшейся памяти).
Ведь память не кончается скачком, а постепенно, в результате накопления некоторых сведений.

Дальше я уже сам разберусь смотря по ситуации.

  Ответить  
 
 автор: Eugene77   (30.05.2012 в 11:53)   письмо автору
 
   для: Valick   (30.05.2012 в 09:52)
 

>опишите ситуацию, что за рост массивов?
________
Подчёркиваю: пока речь идёт об отладке.
В 95% случаев скрипт за пределы памяти не уходит.
На данном этапе я пытаюсь выяснить причины проблемы.
Тут много вариантов: возможна банальная ошибка в логике скрипта, возможно в самом деле при определённом стечении обстоятельств ему без увеличенного объёма памяти не справиться итд.

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

  Ответить  
 
 автор: The Electronic Cat   (30.05.2012 в 10:52)   письмо автору
 
   для: Valick   (30.05.2012 в 09:10)
 

1. ini_set("memory_limit", "256M"); может сработать. Зависит от настроек серва. У заметного числа хостеров работает.

  Ответить  
 
 автор: Eugene77   (30.05.2012 в 11:32)   письмо автору
 
   для: The Electronic Cat   (30.05.2012 в 10:52)
 

>1. ini_set("memory_limit", "256M"); может сработать. Зависит от настроек серва. У заметного числа хостеров работает.
Спасибо!
А как узнать о приближении к максимуму отведённой памяти?

  Ответить  
 
 автор: confirm   (30.05.2012 в 12:00)   письмо автору
 
   для: Eugene77   (30.05.2012 в 11:32)
 

Наверное вам нужны declare и memory_get_usage.

  Ответить  
 
 автор: Eugene77   (01.06.2012 в 19:35)   письмо автору
 
   для: confirm   (30.05.2012 в 12:00)
 

>Наверное вам нужны declare и memory_get_usage.

Да! declare(ticks) - это супер!
PHP - самый лучший язык!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования