- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Написал парсер, ничего сложного
В начале подключение к базе
Далее в цикле for хожу по страницам пагинации, собираю данные и пишу их в базу.
С помощью кода пытался посмотреть сколько тратиться памяти
показывает смешные цифры - 8-9 Мб.
Но контроль на втором экране Putty через htop показывает что скрипт плавно но верно сжирает всю память и потом крашится по аут оф мемори.
Да, объектов там много и цикл длинный, на 30-50 итераций, в каждой итерации 25 объектов (ссылок) по которым тоже нужно сходить и достать там инфу.
Скрипт может работать 30-50 минут.
Так как в скрипте по сути никакой логики, нашли объект по классу, записали в базу и т.д. у меня мысль только одна - может нужно закрывать соединение PDO и снова его открывать когда нужно?
На ВПС 2 гига оперативки, в момент начала работы свободно 1.85 Гб.
В скрипте прописано
Еще идея - может нужно закрывать curl внутри функции? Я из цикла через курл страницы дергаю, курл в функции, которую я вызываю из цикла, но курл внутри нее не закрывается.
Посмотри на предмет лишних переменных. И удаляй их - unset().
Пока код не покажет, смысла обсуждать ничего нет.
Скорее всего там в какой-нибудь массив бесконечно забиваются данные.
Прошу не пинайтесь за goto ибо букинг иногда выдает как будтно пустую страницу. ХЗ почему так, но если вернуться в цикле вверх и снова ее загрузить, то все норм, поэтому goto....
Что такое функции разве не изучал?
Попробуй, может быть и память придёт в норму.
Виноват ПХП Квери, нужно использовать