X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> сокращение времени выполнения программы
pingvin_hb
pingvin_hb
Topic Starter сообщение 20.2.2010, 16:16; Ответить: pingvin_hb
Сообщение #1


При выполнении скрипта выдаётся «execution time», как это победить, например разбиением одного скрипта на несколько? Разбиение с добавлением ?> <? , только ухудшает. Включение в код программы нескольких «ob_start();» или "ob_clean();" не помогает.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 20.2.2010, 16:29; Ответить: ZhukV
Сообщение #2


Я даже не представляю, какая это должна быть прога.
Ну все же здесь есть есть выход.
Если прога у тя что-то в конце выводит, то ты постарайся постепенно выводить, чтоб браузер хоть что-небудь получал.
Еще можно в самом начале скрипта прописать
[PHP]ini_set("max_execution_time", "200");[/PHP]
что означает -- максимальный срок ожидание от сервера ответа, НО-НО, если у тя там полно цыклов, то это может быть плоховато. "200" это срок в секундах. Много ставить не желательно.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pingvin_hb
pingvin_hb
Topic Starter сообщение 20.2.2010, 17:15; Ответить: pingvin_hb
Сообщение #3


(ZhukV @ 20.2.2010, 18:29) *
даже не представляю, какая это должна быть прога.

Эта программа: для поиска создаёт индексный файл – это делается медленно: ведь надо открыть и закрыть множество файлов для разных языков.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 20.2.2010, 17:23; Ответить: Webmaster_hb
Сообщение #4


pingvin, самый лучший способ, чтоб ваш скрипт за один проход обрабатывал не все файлы. а например, только 10
ну и поставить его в крон с запуском раз в 10 минут
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 20.2.2010, 17:25; Ответить: Witu
Сообщение #5


pingvin убрать максимальное время выполнения скрипта
или хитрыми путями обрабатывать каждый файл
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
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
pingvin_hb
Topic Starter сообщение 20.2.2010, 20:16; Ответить: pingvin_hb
Сообщение #7


(ZhukV @ 20.2.2010, 18:29) *
Если прога у тя что-то в конце выводит, то ты постарайся постепенно выводить, чтоб браузер хоть что-небудь получал. Еще можно в самом начале скрипта прописать

Таймаут зависит от сервера (На одном 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
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
pingvin_hb
Topic Starter сообщение 21.2.2010, 13:58; Ответить: pingvin_hb
Сообщение #9


(ZhukV @ 20.2.2010, 22:39) *
Кстати preg_replace() берет очень много ресурсов сервера, так что ее лучше не использовать. Для этого есть много альтернатив.

А еще с чем при поиске работать с регулярными выражениями (Perl-совместимыми) (может ereg) я не знаю.
(ZhukV @ 20.2.2010, 22:39) *
Цитата: После создания каждого индексного файла пришлось делать “ini_set("max_execution_time", "30");” А что относительно max_execution_time, так его нужно установить в самом начале скрипта. Задержка 30, это очень маленькая, по умолчания, вроде стоит 100, поетому может и не срабатывает echo.

У меня на одном сервере 10 секунд, на лругом - 30 секунд, но если программа выполняется менее 2 секунды – то это нормально.
(ZhukV @ 20.2.2010, 22:39) *
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. Оказалось весь комп работает то быстро, то медленно – лечится перезагрузкой.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Скрипты и программы на заказ любой сложности. Без предоплаты. Быстро, качественно и недорого!
5 c4p1t4l15t 2514 6.4.2024, 12:51
автор: c4p1t4l15t
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСколько времени нужно для раскачки нового сайта?
29 metvekot 8000 8.3.2024, 15:41
автор: malamut
Открытая тема (нет новых ответов) Статьи на тему "партнерские программы Форекс"
0 NikitaBjo 1487 31.10.2023, 18:00
автор: NikitaBjo
Открытая тема (нет новых ответов) Продам скрипт rtb exchange suite - система перепродажи трафика dsp/ssp в реальном времени.
4 buypushplatform 4169 12.10.2021, 15:29
автор: ULUD
Открытая тема (нет новых ответов) Комиссия 40-70%: обновление партнерской программы 2020
2 Phyllis 2012 20.4.2021, 17:52
автор: Phyllis


 



RSS Текстовая версия Сейчас: 19.4.2024, 23:30
Дизайн