Помощник
|
сокращение времени выполнения программы |
pingvin_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
ZhukV |
20.2.2010, 16:29;
Ответить: ZhukV
Сообщение
#2
|
|
Я даже не представляю, какая это должна быть прога.
Ну все же здесь есть есть выход. Если прога у тя что-то в конце выводит, то ты постарайся постепенно выводить, чтоб браузер хоть что-небудь получал. Еще можно в самом начале скрипта прописать [PHP]ini_set("max_execution_time", "200");[/PHP] что означает -- максимальный срок ожидание от сервера ответа, НО-НО, если у тя там полно цыклов, то это может быть плоховато. "200" это срок в секундах. Много ставить не желательно. |
|
|
pingvin_hb
|
Сообщение
#3
|
|
|
|
|
Webmaster_hb |
20.2.2010, 17:23;
Ответить: Webmaster_hb
Сообщение
#4
|
|
pingvin, самый лучший способ, чтоб ваш скрипт за один проход обрабатывал не все файлы. а например, только 10
ну и поставить его в крон с запуском раз в 10 минут |
|
|
Witu |
20.2.2010, 17:25;
Ответить: Witu
Сообщение
#5
|
|
pingvin убрать максимальное время выполнения скрипта
или хитрыми путями обрабатывать каждый файл |
|
|
ZhukV |
20.2.2010, 18:02;
Ответить: ZhukV
Сообщение
#6
|
|
Может с одной стороны и выглядит туповато, но у ся, при импорте базы обьявлений, скрипт исполнялся приблизительно 10-30 минут. Файл импорта .xls и всреднем щонедели импортировали приблизительно 10 000 -15 000 обьявлений.
У меня тоже такая "хрень" была. Выставил "max_execution_time", но все равно было плоховато. Тогда додумался сделать все ето через аякс. Структура: 1. Загружается файл через пхп 2. Отправляется компу клиенту ответ и адрес нового файла. 3. Опять отправляется запрос на сервер, пхп считует первую строку,формироет запрос к базе, посылает браузеру, затем удаляет ее. 4. Браузер принимает строку запроса, обрабатывает и опять запрос серверу. 5. По окончанию операции браузер принимает код конца и завершает скрипт. Все действия записуются в лог и у контейнер типа ифраме. Иногда ставил задержку между запросами, поскольку валился сервер. Возможно это и немного туповато, но другого выхода я не видел. |
|
|
pingvin_hb
|
Сообщение
#7
|
|
Если прога у тя что-то в конце выводит, то ты постарайся постепенно выводить, чтоб браузер хоть что-небудь получал. Еще можно в самом начале скрипта прописать Таймаут зависит от сервера (На одном 30 сек, на другом 10 сек). После создания каждого индексного файла пришлось делать “ini_set("max_execution_time", "30");”, правда между этими командами echo не работает (так что отсутствует контроль выполнения при длинной задержке), ну да ладно (всего на все индексации требуется 98 секунд и ни чего не выдаётся). Появилась новая ошибка: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32505011 bytes) in XXX. – выдаётся в строке с функцией preg_replace(), где раньше нормально работало. = исправил ошибку, теперь время всей индексации 0.5 секунды, 121 файл. |
|
|
ZhukV |
20.2.2010, 20:39;
Ответить: ZhukV
Сообщение
#8
|
|
Кстати preg_replace() берет очень много ресурсов сервера, так что ее лучше не использовать. Для этого есть много альтернатив.
После создания каждого индексного файла пришлось делать “ini_set("max_execution_time", "30");” А что относительно max_execution_time, так его нужно установить в самом начале скрипта. Задержка 30, єто очень маленькая, по умолчания, вроде стоит 100, поетому может и не срабатывает echo. tried to allocate 32505011 bytes -- нехватка пам'яти. Возможно у тя очень много цыклов, текстовых переменных, попробуй уменшить. Также может быть поблемы с ОЗУ, если используются огромные файлы. Если работаеш с файлами, то после окончание работы с ними сразу ж закрывай, чтоб освободить системную пам'ять |
|
|
pingvin_hb
|
Сообщение
#9
|
|
|
Кстати preg_replace() берет очень много ресурсов сервера, так что ее лучше не использовать. Для этого есть много альтернатив. А еще с чем при поиске работать с регулярными выражениями (Perl-совместимыми) (может ereg) я не знаю. Цитата: После создания каждого индексного файла пришлось делать “ini_set("max_execution_time", "30");” А что относительно max_execution_time, так его нужно установить в самом начале скрипта. Задержка 30, это очень маленькая, по умолчания, вроде стоит 100, поетому может и не срабатывает echo. У меня на одном сервере 10 секунд, на лругом - 30 секунд, но если программа выполняется менее 2 секунды – то это нормально. tried to allocate 32505011 bytes -- нехватка пам'яти. Возможно у тя очень много цыклов, текстовых переменных, попробуй уменшить. Также может быть поблемы с ОЗУ, если используются огромные файлы. Если работаеш с файлами, то после окончание работы с ними сразу ж закрывай, чтоб освободить системную пам'ять Была ошибка в программе = испорчен конфигурационный файл. P.S. Опять скрипт стал медленно работать (34 секунды) той ошибки нет. Ошибок не выдаёт. P.P.S. Второй раз тот же скрипт запустил – 55 секунд. P.P.P.S. Я был удивлён, что программа работает так быстро: создаёт шесть индексных файлов за 0,4 секунды. P.P.P.P.S. Выводится информация через echo после завершения скрипта, так как скрипт работает долго – это не удобно для отладки. P.P.P.P.P.S. Скрипт работает то быстро, то медленно. P. P.P.P.P.P.S. Оказалось весь комп работает то быстро, то медленно – лечится перезагрузкой.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Сколько времени нужно для раскачки нового сайта? | 29 | metvekot | 7752 | 8.3.2024, 15:41 автор: malamut |
|
Статьи на тему "партнерские программы Форекс" | 0 | NikitaBjo | 1441 | 31.10.2023, 18:00 автор: NikitaBjo |
|
Скрипты и программы на заказ любой сложности. Без предоплаты. Быстро, качественно и недорого! | 3 | c4p1t4l15t | 2159 | 23.1.2023, 4:27 автор: c4p1t4l15t |
|
Продам скрипт rtb exchange suite - система перепродажи трафика dsp/ssp в реальном времени. | 4 | buypushplatform | 4120 | 12.10.2021, 15:29 автор: ULUD |
|
Комиссия 40-70%: обновление партнерской программы 2020 | 2 | Phyllis | 1985 | 20.4.2021, 17:52 автор: Phyllis |
Текстовая версия | Сейчас: 19.3.2024, 5:45 |