Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как оптимизировать код?
Подскажите почему этот код может стать причиной высокого потребления ОЗУ на сервере? И можно ли както оптимизировать код, чтобы не было такой большой нагрузки?
code358
Отправлено: 11 Февраля, 2014 - 14:36:46
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Февр. 2014
Помог: 0 раз(а)
функция должна return'ить
esterio
Отправлено: 11 Февраля, 2014 - 14:40:04
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
code358 пишет:
функция должна return'ить
необьязательно
Extazy
как измеряли?
Extazy
Отправлено: 11 Февраля, 2014 - 15:02:07
Посетитель
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
esterio, я не знаю как определить что потребляет так много ОЗУ, но хостер сказал, что у меня открыто очень много PHP процессов, потребляющих по 3% ОЗУ. Последние 2 дня я работаю как раз с указанным выше кодом - поетому предположил, что он и есть причина. (Добавление) http://informers[dot]tomtel[dot]ru/prog/TVGuide[dot]xml довольно тяжёлый файл, и быть может он как раз и потребляет столько ОЗУ?
Invert
Отправлено: 11 Февраля, 2014 - 15:20:28
Частый гость
Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010
Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010
Помог: 5 раз(а)
Мелкий пишет:
https://bugs.php.net/bug.php?id=62467
Пардон, не знал.
Мелкий
Отправлено: 11 Февраля, 2014 - 15:45:42
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Invert, ага, я тоже случайно обнаружил.
А следует из этого неприятная ситуация - для диагностики, сколько же и куда утекает памяти средств самого php мало. Возможно xdebug прояснит картину.
Extazy пишет:
открыто очень много PHP процессов
Почему их много? У вас на каждый чих загружается xml'ка?
----- PostgreSQL DBA
Extazy
Отправлено: 11 Февраля, 2014 - 15:49:28
Посетитель
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Кажется причина стала более ясна.
Файл по ссылке, указанный в коде, залит на мой сервер. Оперативки становится ровно 0 после того, как я пытаюсь проверить доступность сайта через http://host-tracker[dot]com/ru/ , где идёт запрос к сайту с пары десятков IP с разных стран мира.
О чём это говорит? Прикреплено изображение (Нажмите для увеличения)
Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010
Помог: 5 раз(а)
Extazy пишет:
О чём это говорит?
Мелкий пишет:
Почему их много? У вас на каждый чих загружается xml'ка?
Попробуйте кэшировать данные в промежуточном формате, чтобы снизить потребление памяти.
Extazy
Отправлено: 11 Февраля, 2014 - 15:56:10
Посетитель
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
оу а как тут лучше кеш применить? я в нём не очень разбираюсь.
Invert
Отправлено: 11 Февраля, 2014 - 16:02:23
Частый гость
Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010
Помог: 5 раз(а)
Я не знаю, как там у вас используется этот XML файл, но могу предположить, что вы парсите его при каждом открытии страницы пользователем. Что по сути не нужно. Вам нужно лишь раз распарсить XML, получить нужные данные и сохранить их (временно) в промежуточный формат, который вам удобно использовать. И в вашем случае не важно, текстовый документ это, Memcache или БД.
Extazy
Отправлено: 11 Февраля, 2014 - 16:05:01
Посетитель
Покинул форум
Сообщений всего: 490
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Invert, информация в .xml обновляется раз в неделю. Значит мне необходимо 1 раз в неделю парсить этот файл, вытаскивать из него нужные данные и, например, сохранять в mysql бд.. и в течение недели уже работать только с бд. так?
Invert
Отправлено: 11 Февраля, 2014 - 16:09:02
Частый гость
Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.