PHP - Нехватка памяти
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Я, конечно, понимаю, что можно в php.ini "Allowed memory size" на 16Мб вместо 8-ми, как сейчас стоит, установить, но не думаю, что это выход.
Отсюда вопрос: Где в php узкие места при работе с памятью?
В нем ведь нету Garbage Collectora?..
Существуют ли какие-то методы отслеживания расхода памяти, кроме memory_get_usage() и очищения, кроме unset() ?
Или все это глупости и вся проблема только в кривых руках?
(шутка ли, запихнуть в переменную класса 130 тыс. значений из БД и работать с ними... Или это не много?)
Отсюда вопрос: Где в php узкие места при работе с памятью?
В нем ведь нету Garbage Collectora?..
Существуют ли какие-то методы отслеживания расхода памяти, кроме memory_get_usage() и очищения, кроме unset() ?
Или все это глупости и вся проблема только в кривых руках?
(шутка ли, запихнуть в переменную класса 130 тыс. значений из БД и работать с ними... Или это не много?)
Да вы батенька извращенецзапихнуть в переменную класса 130 тыс. значений из БД

Даже самый дурацкий замысел можно воплотить мастерски
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
AiK, mysql_free_result который? Да! ))
75 тыс - график строю... кхе... За два года с 15-ти минутным тактом ))
Знаю, глупости за два года по 15 минут, но может быть до 10-ти графиков на картинке .. теоретически и больше ..
А значит, что колличество данных за 5 месяцев для 10-ти графиков равно 2 графикам за два года.
----
Перейти на часы или дни - это уже мои личные проблемы..
А вот как все же памятью можно манипулировать?
Или как минимум получить информацию о ее распределении?
75 тыс - график строю... кхе... За два года с 15-ти минутным тактом ))
Знаю, глупости за два года по 15 минут, но может быть до 10-ти графиков на картинке .. теоретически и больше ..
А значит, что колличество данных за 5 месяцев для 10-ти графиков равно 2 графикам за два года.
----
Перейти на часы или дни - это уже мои личные проблемы..
А вот как все же памятью можно манипулировать?
Или как минимум получить информацию о ее распределении?
Я знаю только memory_get_usage. А memory_limit можно менять где угодно, в том числе и непосредственно в скрипте.
Даже самый дурацкий замысел можно воплотить мастерски
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
А может хоть ексепшены отлавливать можно?
В смысле, как можно предупредить то, что мой скрипт вылетает по ошибке нехватки памяти?
Бо не прет меня перед каждой из тысячи строк делать проверку, а не закончится ли случайно скоро память ....
В смысле, как можно предупредить то, что мой скрипт вылетает по ошибке нехватки памяти?
Бо не прет меня перед каждой из тысячи строк делать проверку, а не закончится ли случайно скоро память ....
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Absurd, нет ... не, ну то есть, может и можно, но я не знаю подходящего метода...
Вообще не загоняя никуда - ну просто не получится, ибо та же imageline() всё равно ведь приписывает данные к resource image ..
Другое дело, что ... для начала я создаю свой массив, в удобном для обработки представлении.
Потом, собственно, обрабатываю его.
Ну а уж потом рисую.
Можно, конечно, всё сразу пихать в image GD-библиотеки, а потом ... каким-то боком пытаться что-то с этим сделать
Простой пример. До тех пор, пока все данные не забраны из БД я не знаю максимума, чтобы задать коеффициент скалирования, необходимый для отображения графиков на рисунке..
Вообще не загоняя никуда - ну просто не получится, ибо та же imageline() всё равно ведь приписывает данные к resource image ..
Другое дело, что ... для начала я создаю свой массив, в удобном для обработки представлении.
Потом, собственно, обрабатываю его.
Ну а уж потом рисую.
Можно, конечно, всё сразу пихать в image GD-библиотеки, а потом ... каким-то боком пытаться что-то с этим сделать

Простой пример. До тех пор, пока все данные не забраны из БД я не знаю максимума, чтобы задать коеффициент скалирования, необходимый для отображения графиков на рисунке..
Oscar, налицо атипичное использование БД. Она тебе вообще не мешает, а? 
Удобные массивы - это таблицы. Всё что нужно, можно сосчитать средствами SQL.
В частности твой максимум. И среднее. И чёрта в ступе

Удобные массивы - это таблицы. Всё что нужно, можно сосчитать средствами SQL.
В частности твой максимум. И среднее. И чёрта в ступе

Даже самый дурацкий замысел можно воплотить мастерски