Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Долгоиграющий скрипт. CRON-запуск каждую минуту. PHP или Perl ? 
:(
    Опции темы
Wowa
Дата 10.12.2005, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Есть сложный скрипт, который должен обрабатывать некоторые данные. Время обработки данных будет обычно всегда по несколько минут длиться. Скрипт будет запускаться через CRON каждую минуту или же раз в 5 минут.

Вопрос: Лучше писать этот скрипт на PHP или Perl?

PHP ведь накладывает ограничение на время исполнения скрипта в 30 сек. Ясно, что это значение через php.ini можно изменить, но ведь всего сервера....



Впрочем, мне не нужно мой скрипт выполнять через веб-сервер. А устроит прямой запуск. Как его через Крон запускать? Так? php /etc/script.php


В этом случае не будет ограничения на время выполнения?
PM WWW   Вверх
-=Ustas=-
Дата 10.12.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(Wowa @ 10.12.2005, 12:35)
PHP ведь накладывает ограничение на время исполнения скрипта в 30 сек. Ясно, что это значение через php.ini можно изменить, но ведь всего сервера....

Ну зачем же?! smile Можно в ПХП скрипте прописать set_time_limit(int second);
Цитата(Wowa @ 10.12.2005, 12:35)
Время обработки данных будет обычно всегда по несколько минут длиться

Цитата(Wowa @ 10.12.2005, 12:35)
Скрипт будет запускаться через CRON каждую минуту

Теперь смотри, время обработки - несколько минут, периодичность запуска - каждую минуту. Таким макаром сервак у тебя загнется через n-ое количество времени. smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Wowa
Дата 10.12.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата

Теперь смотри, время обработки - несколько минут, периодичность запуска - каждую минуту. Таким макаром сервак у тебя загнется через n-ое количество времени. 

не загнется, т.к. далеко не всегда время обработки - несколько минут.
PM WWW   Вверх
AntonioBanderaz
Дата 10.12.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Можно и не только так сделать,всё это дело мона в бесконечный цикл засунуть... Но тогда переодичность упадёт.
Только в начале срипта поставь set_time_limit(0);

А лучше всего использовать нативную прогу, которую ты будешь запускать через system или exec, строишь демон на PHP.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
AkimVital
Дата 10.12.2005, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.11.2005

Репутация: нет
Всего: нет



По своему опыту скажу:
похожие программы на ПХП жрут 98% Memory и дохрена эфирного времени процессора, в результате чего апач рискует в конце концов cдохнуть и перезапуститься (скрипт рискует неотработать полностью - для некоторых систем это критично) и это затягивается надолго. Если PHP - модуль CGI, результаты не столь плачевны.
В то время как Perl предназначен для таких целей, быстрее выполняется и (по моей практике) не потребляет больше 5-10% Memory. Апач от него тоже вряд ли сдохнет =)

Если Запускается кроном - однозначно не ПХП ибо крон выполняет команды(!) а пхп вызывается апачем (исключение опять же CGI-PHP)

для этого в начале файла надо как и перлу прописать
#!/usr/bin/php
И естесно сделать его исполняемым...

Это сообщение отредактировал(а) AkimVital - 10.12.2005, 22:26
PM MAIL   Вверх
Mal Hack
Дата 10.12.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Wowa @ 10.12.2005, 12:35)
В этом случае не будет ограничения на время выполнения?

Нет. (100% не дам, но где-то проскальзывало).

Демона лучше вобще писать на Си. ПХП для этого, мягко говоря, не годиться.
Перл - получше, но тоже не сильно удачно, по сравнению с сями.
PM ICQ   Вверх
AkimVital
Дата 10.12.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.11.2005

Репутация: нет
Всего: нет



Цитата(AntonioBanderaz @ 10.12.2005, 14:29)
А лучше всего использовать нативную прогу, которую ты будешь запускать через system или exec

smile ага... прикольно: Запускаем кроном ПХП, чтобы запустить system.....
Цитата(AntonioBanderaz @ 10.12.2005, 14:29)
, строишь демон на PHP.

Это вообще смешно...

Это сообщение отредактировал(а) AkimVital - 10.12.2005, 22:29
PM MAIL   Вверх
Wowa
Дата 10.12.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(AkimVital @ 10.12.2005, 20:22)
Если Запускается кроном - однозначно не ПХП ибо крон выполняет команды(!) а пхп вызывается апачем (исключение опять же CGI-PHP)


дык, а разве нельзя дать команду: php myscript.php ? Разве не будет работать также, как perl myscript.pl ?
PM WWW   Вверх
AkimVital
Дата 10.12.2005, 22:30 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.11.2005

Репутация: нет
Всего: нет



Цитата(Wowa @ 10.12.2005, 22:28)
дык, а разве нельзя дать команду: php myscript.php ? Разве не будет работать также, как perl myscript.pl ?

можно, только ключ нужен, по-моему -r
Добавлено @ 22:33
php -h
Usage: php [options] [-f] <file> [args...]
php [options] -r <code> [args...]
php [options] [-- args...]
-a Run interactively
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse <file>.
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r <code> Run PHP <code> without using script tags <?..?>
-s Display colour syntax highlighted source.
-v Version number
-w Display source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.

args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin

PM MAIL   Вверх
Wowa
Дата 10.12.2005, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(AkimVital @ 10.12.2005, 20:30)
можно

раз можно, то какие проблемы? Даже с тем же демоном на пхп, построительство которого ты назвал смешным. Есть аргументы?
PM WWW   Вверх
Mal Hack
Дата 10.12.2005, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Wowa php как демон тяжелый получается.
PM ICQ   Вверх
Wowa
Дата 10.12.2005, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(Mal @ 10.12.2005, 20:46)
Wowa php как демон тяжелый получается.

за счет чего?
PM WWW   Вверх
Mal Hack
Дата 10.12.2005, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Wowa @ 10.12.2005, 22:47)
за счет чего?

Не ориентирован ПХП на такие вещи. Да, может и на каких-то задачах это не будет заметно, но на других - да.
PM ICQ   Вверх
Wowa
Дата 10.12.2005, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(Mal @ 10.12.2005, 20:52)
Да, может и на каких-то задачах это не будет заметно, но на других - да.

я плохо могу себе представить такую задачу, т.к. не вижу причин для тормозов скрипта. Пока мне их тут тоже никто не назвал..
PM WWW   Вверх
AkimVital
Дата 10.12.2005, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.11.2005

Репутация: нет
Всего: нет



Цитата(Wowa @ 10.12.2005, 22:44)
раз можно, то какие проблемы? Даже с тем же демоном на пхп, построительство которого ты назвал смешным. Есть аргументы?

Есть: хотя бы если это демон, он должен иметь хоть какуб-то степень свободы (запуска, завершения) - ага... модуль апача как раз тот случай !!!
А остальное уже было сказано... читай форум внимательно.
Добавлено @ 22:58
Цитата(Wowa @ 10.12.2005, 22:56)
.к. не вижу причин для тормозов скрипта.

наприм, то же взаимодействие с базой данных, происходит через сокеты. Сделай 100 000 инсертов на ПХП и на перле и ты увидишь разницу...

Это сообщение отредактировал(а) AkimVital - 10.12.2005, 22:59
PM MAIL   Вверх
Wowa
Дата 10.12.2005, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(AkimVital @ 10.12.2005, 20:57)
Есть: хотя бы если это демон, он должен иметь хоть какуб-то степень свободы (запуска, завершения) - ага... модуль апача как раз тот случай !!!

причем тут модуль апача? Это надо быть идиотом, чтобы запускать через КРОН пхп-скрипт через АПАЧЕ.

Добавлено @ 22:59
Цитата(AkimVital @ 10.12.2005, 20:57)
наприм, то же взаимодействие с базой данных, происходит через сокеты.

А в perl разве иначе?


Цитата(AkimVital @ 10.12.2005, 20:57)
Сделай 100 000 инклудов на ПХП и на перле и ты увидишь разницу...

Каких инклудов?
PM WWW   Вверх
AkimVital
Дата 10.12.2005, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.11.2005

Репутация: нет
Всего: нет



сори - опечатался - исправился - инсертов SQL.
Идиотом не надо быть, что бы ставить ПХП как модуль Апач - таких в мире гдето 70%
в перле сам перл иначе работает... учи перл.... или просто попробуй, как я сказал....

Это сообщение отредактировал(а) AkimVital - 10.12.2005, 23:03
PM MAIL   Вверх
Wowa
Дата 10.12.2005, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(AkimVital @ 10.12.2005, 21:03)
Идиотом не надо быть, что бы ставить ПХП как модуль Апач - таких в мире гдето 70%

Естественно, т.к. это для другой нужды сделано. Мне никто не мешает иметь ПХП, как модуль апача для работы сайта и иметь простой PHP-интерпритатор для запуска всяких скриптов по обслуживанию сайта через крон.

Добавлено @ 23:12
Цитата(AkimVital @ 10.12.2005, 21:03)
сори - опечатался - исправился - инсертов SQL.

Ну такое лучше сразу через mysql BASE < base.sql
PM WWW   Вверх
AkimVital
Дата 10.12.2005, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 25.11.2005

Репутация: нет
Всего: нет



Цитата(Wowa @ 10.12.2005, 12:35)
Вопрос: Лучше писать этот скрипт на PHP или Perl?

Я так понял это была тема дисскусии. Раз ты сам решил писать все на ПХП - вот и хорошо. Я все-го лишь пытался помочь. Скажу еще, что как-то я сделал подобный демон, который работал 1.5 часа (я по TOP'у смотрел) и грузил сервер так, что апач еле на запросы пользователей отвечал. Перл в той ситуации показал себя лучше.
Добавлено @ 23:15
Цитата(Wowa @ 10.12.2005, 23:09)
Цитата (AkimVital @ 10.12.2005, 21:03)
сори - опечатался - исправился - инсертов SQL.

Ну такое лучше сразу через mysql BASE < base.sql

Не, ты ради интереса попробуй эту задачу решить и на ПХП и на перл.
PM MAIL   Вверх
Wowa
Дата 10.12.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(AkimVital @ 10.12.2005, 21:14)
Скажу еще, что как-то я сделал подобный демон, который работал 1.5 часа (я по TOP'у смотрел) и грузил сервер так, что апач еле на запросы пользователей отвечал. Перл в той ситуации показал себя лучше.

зависит от того, как написано... Если написано полностью одинаково на обоих язык,т.е. используются аналогичные функции и алгоритм на 100% совпадает, то нужно бы выявить за счет чего пхп-скрипт в этом случае работал хуже. Мне вот это как раз и интересно. А перл я итак знаю, несколько лет на нем программировал.
Добавлено @ 23:22
Цитата(AkimVital @ 10.12.2005, 21:14)
. Скажу еще, что как-то я сделал подобный демон, который работал 1.5 часа (я по TOP'у смотрел) и грузил сервер так, что апач еле на запросы пользователей отвечал.

Он у тебя через тебя mod_php работал?
PM WWW   Вверх
Mal Hack
Дата 11.12.2005, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(AkimVital @ 10.12.2005, 23:03)
Идиотом не надо быть, что бы ставить ПХП как модуль Апач - таких в мире гдето 70%

Обоснуй.

Когда мы запускаем пхп скрипт из под крона, мы его можем запустить как shell скрипт, указав обработчик, т.е. интерпретатор, так же как в Perl'e #!usr/bin и т.п.
Апач тут вообще никакого отношения не имеет.


Цитата(Wowa @ 10.12.2005, 22:56)
я плохо могу себе представить такую задачу, т.к. не вижу причин для тормозов скрипта. Пока мне их тут тоже никто не назвал..

Ну смотри. Вот два варианта, Си и ПХП. Так. Очевидно, что ПХП более медленный чем Си. Так? Очевидно, что к примеру с сокетами он будет работать медленнее, хотя бы потому что его код будет транслироваться на код сей (грубо сказал, понимаю). Си же сам понимаешь более отлаженный язык, более низкоуровневые, и с сокетами работать будет быстрее...

Если конкретно задачу, то - чтение порта.
PM ICQ   Вверх
AntonioBanderaz
Дата 11.12.2005, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Цитата(Mal @ 11.12.2005, 00:38)
Ну смотри. Вот два варианта, Си и ПХП. Так. Очевидно, что ПХП более медленный чем Си. Так? Очевидно, что к примеру с сокетами он будет работать медленнее, хотя бы потому что его код будет транслироваться на код сей (грубо сказал, понимаю). Си же сам понимаешь более отлаженный язык, более низкоуровневые, и с сокетами работать будет быстрее...

Скорее потому что Си не скриптовый язык...
PHP скрипт, компилится при каждом запуске скрипта, а Си один раз (конечно не всегда)...

WowaА что за действия должен скрипт выполнять?



--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Wowa
Дата 11.12.2005, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(AntonioBanderaz @ 11.12.2005, 14:15)
WowaА что за действия должен скрипт выполнять?

шерстить базу, кое-что находить и изменяя снова записывать.
Добавлено @ 16:48
Цитата(AntonioBanderaz @ 11.12.2005, 14:15)
Скорее потому что Си не скриптовый язык...
PHP скрипт, компилится при каждом запуске скрипта, а Си один раз (конечно не всегда)...

Скорее или нет - это я и хочу выяснить. Если скрипт запускается раз в минуту, то мне совершенно все равно - скриптовый он или нет. Если было бы несколько вызовов в секунду, тогда это имело бы значение. А так..
PM WWW   Вверх
Mal Hack
Дата 11.12.2005, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Wowa @ 11.12.2005, 16:46)
Скорее или нет - это я и хочу выяснить. Если скрипт запускается раз в минуту, то мне совершенно все равно - скриптовый он или нет. Если было бы несколько вызовов в секунду, тогда это имело бы значение. А так..

Тут выгоднее все-таки сделать демона на сях, чтобы он не каждые 60 секунд занова грузился, а всегда висел в RAM.
PM ICQ   Вверх
Wowa
Дата 11.12.2005, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 1
Всего: 290



Цитата(Mal @ 11.12.2005, 19:37)

Тут выгоднее все-таки сделать демона на сях, чтобы он не каждые 60 секунд занова грузился, а всегда висел в RAM.

из-за скорости работы с сокетами??? Вроде и на перл тогда можно.., раз говорите, что пзп медленнее
PM WWW   Вверх
Alone
Дата 12.12.2005, 17:22 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 1
Всего: 6



Цитата(Mal @ 11.12.2005, 00:38)
Ну смотри. Вот два варианта, Си и ПХП. Так. Очевидно, что ПХП более медленный чем Си. Так? Очевидно, что к примеру с сокетами он будет работать медленнее, хотя бы потому что его код будет транслироваться на код сей (грубо сказал, понимаю). Си же сам понимаешь более отлаженный язык, более низкоуровневые, и с сокетами работать будет быстрее...

Возможно ты хотел сказать что будет медленнее обрабатывать данные, поступившие из сокета???
php ведь не бейсик-80, где каждая строка при выполнении транслировалась...
В любом случае, я считаю это не критичным, потому что во многих случаях играет роль скорость разработки а не 2% выигрыш в скорости. Не на 286 сидим ведь...

Очень разумно было сказано за выполнение скрипта как шелл-скрипта, с указанием в заголовке обработчика.
Действительно апач тут вообще не учавствует, ДАЖЕ если пхп установлен как модуль(!). Правда это не сработает, если пхп установлен ТОЛЬКО как модуль(.so), и нет его бинаря в системе.
А в общем, схема с использованием пхп как скриптового языка оправдывает себя на все 100%.

(Mal Hack, не тебе smile )И не надо тут приводить примеры с 100 000 реквестов и тому подобного... Человеку надо прошерстить бд, и сделать некоторые манипуляции с БД. И всё.
Не будет хватать ресурсов - подымет вопрос снова, только уже в другом контексте.
Так что Wowa, никого не слушай и делай как тебе нравится перл/пхп в общем дадут одинаковый результат.


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 12.12.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Alone @ 12.12.2005, 17:22)
В любом случае, я считаю это не критичным, потому что во многих случаях играет роль скорость разработки а не 2% выигрыш в скорости. Не на 286 сидим ведь...

Не забывай, что демон на си уже исполняемый файл, а пхп еще должен транслироваться.
Хорошо если как демон будет работать, а если через крон каждый раз транслироваться не есть хорошо.
PM ICQ   Вверх
Alone
Дата 12.12.2005, 18:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 11.5.2003
Где: Dnepropetrovsk, U A

Репутация: 1
Всего: 6



smile это было бы справедливо для нагрузки в ХХХХХ коннектов к апачу. А в данном случае, как говориться "понты для приезжих" smile
Я сам нередко использую пхп в качестве быстрого написания шелл-скриптов. smile


--------------------
web developer/telecommunication specialist.
mailto: [email protected]
ICQ#28442924

PM MAIL WWW ICQ   Вверх
mxp100
Дата 27.10.2006, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 2.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Из личного опыта
Был скрипт запускаемый из крона каждый 1 час
он выполнял перенос таблицы (закачанный каталог товаров, около 80 тыс. записей) в основную таблицу
на PHP4 скрипт выполнялся около 1-1.5 часа (хотя объемы не колосальные),
тот же самый скрипт написанный на Perl выполнялся 10-20 мин.
выводы делайте сами ;)
P.S. Хотя в основном использую PHP как более удобный язык

PM MAIL ICQ   Вверх
-=Ustas=-
Дата 27.10.2006, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



[offtop]
mxp100, доброе утро!!! Почти год прошел с предыдущего поста smile
[\offtop]


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
G0rinich
Дата 27.10.2006, 11:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 21.8.2006

Репутация: 1
Всего: 1



Цитата(mxp100 @  27.10.2006,  03:57 Найти цитируемый пост)
Из личного опыта
Был скрипт запускаемый из крона каждый 1 час
он выполнял перенос таблицы (закачанный каталог товаров, около 80 тыс. записей) в основную таблицу
на PHP4 скрипт выполнялся около 1-1.5 часа (хотя объемы не колосальные),
тот же самый скрипт написанный на Perl выполнялся 10-20 мин.
выводы делайте сами ;)
P.S. Хотя в основном использую PHP как более удобный язык


Дефективно пишете дорогой )))
Из личного опыта. Для одного сайта писался скрипт, который загружал данные из xml файла (15Мб!) в БД. Выполнялось порядка 210К запросов. Разбор XML+занесение данных в БД после долгих мучений заняло 17 секунд на процессоре 800MHz. И все это на РНР!!!

Wowa, скрипт можешь писать как на Perl, так и на РНР. На чем удобнее на том и пиши. Если конечно не упираешься во временные рамки и надо ресурсы экономить. Т.к. скрипт будет запускаться по крону, его по времени никто ограничивать не станет. РНР скрипт запущенный из консоли будет выполняться любое количество времени. В общем-то как и Perl скрипт. Только вначале скрипта обязательно надо #!/usr/bin/php или где он там на сервере лежит. Далеко не правда, что РНР будет хавать весь процессор, а Perl только чуть-чуть. При работе с БД процессор будет хавать именно БД, а не скрипт. На Perl решение может выглядеть красивее. И если ты очень хорошо знаешь Perl, то и быстрее. Если твой код на Perl выглядит как код на РНР, то можно с уверенностью сказать, что Perl ты не знаешь и писать на нем что-то серьезное не стоит. Такой код быстрее работать не будет.
PM MAIL   Вверх
IZ@TOP
Дата 27.10.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



G0rinich, поддерживаю.
У меня была подобная по тяжеловестности задача, 5Mb XML, количество запросов к БД не мерил, но вероятнее всего возле 100К. Время выполнения в пределах одной-вух секунд.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
pythonwin
Дата 30.10.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: нет
Всего: 36



а почему не питон? smile


Это сообщение отредактировал(а) pythonwin - 30.10.2006, 14:30
PM WWW GTalk Jabber   Вверх
kshyms
  Дата 7.1.2008, 09:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Wowa
 
Цитата

раз можно, то какие проблемы? Даже с тем же демоном на пхп, построительство которого ты назвал смешным. Есть аргументы? 

 Очень хорошая идея. Имеет практическую пользу и хорошие перспективы. IMHO. Если действительно PHP, который исполняется на сервере этим скриптом устанавливаются свойства C  и без юзера любой скрипт с добавлением вашего демона будет самостоятельно запускаться. Это во первых экономия, а во вторых оптимизация и автоматизация. Обязательно применю его в своих исследованиях и буду докладывать о проблемах и успехах. 
PM MAIL WWW Skype   Вверх
kshyms
Дата 8.1.2008, 09:48 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



Код

<?php

// Файл содержащий рандомные фразы разделённых "rn" (каждая фраза на новой строке)
$FileName = "file.txt";

$FHandle = file($FileName);

// Работаем вечно (выдаёт ошибку при safe_mode=1, @ для подавления)
@set_time_limit(0);

// Создание сокета TCP: resource socket_create(1, 2, 3);
// 1) AF_INET - семейство протокола или домен. Для соединений
// осуществляемых через интернет используется AF_INET,
// для UNIX используется AF_Unix (но об этом позже)
// 2) SOCK_STREAM - обычно используется для TCP (SOCK_DGRAM - UDP)
// 3) Протокол для TCP - SOL_TCP, UDP - SOL_UDP
// возвращает дескриптор сокета
if(($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) nc 127.0.0.1 666

Здесь нашел А может так лучше? Но пока оба скрипта и ваш и этот не работают. Что не так?

Это сообщение отредактировал(а) kshyms - 8.1.2008, 09:50
PM MAIL WWW Skype   Вверх
kshyms
Дата 12.1.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

Репутация: нет
Всего: 0



30 1 * * 1 /home/site/script.php
мин час любой день любоого месяца
еще такой  cron оказывается есть
Но самое главное оказывается у провайдера нужно спрашивать как его настраивать. То есть у всех по разному. Инфо к размышлению smile 
PM MAIL WWW Skype   Вверх
Resha
Дата 23.10.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



Цитата(AkimVital @ 10.12.2005,  22:22)
По своему опыту скажу:
похожие программы на ПХП жрут 98% Memory и дохрена эфирного времени процессора, в результате чего апач рискует в конце концов cдохнуть и перезапуститься (скрипт рискует неотработать полностью - для некоторых систем это критично) и это затягивается надолго. Если PHP - модуль CGI, результаты не столь плачевны.
В то время как Perl предназначен для таких целей, быстрее выполняется и (по моей практике)  не потребляет больше 5-10% Memory. Апач от него тоже вряд ли сдохнет =)

Если Запускается кроном - однозначно не ПХП ибо крон выполняет команды(!) а пхп вызывается апачем (исключение опять же CGI-PHP)

для этого в начале файла надо как и перлу прописать 
#!/usr/bin/php
И естесно сделать его исполняемым...

Вот это жесть smile Где ж вы такого начитались smile У PHP уже много-много лет есть нормальный CLI smile И не надо там никуда ничего менять smile Единственное, нужно отследить, чтобы все пути прописывались через dirname(__FILE__) . "/..." (т.е. чтобы пути были относительны выполняемого скрипта, а не рабочей директории shell'а).

Проблема с перегрузкой решается просто:
Запускаете скрипт - записываете файл с именем - pid php-процесса - в папочку (processes, например). По крону остается только запускать скрипт, который будет удалять файлы несуществующих процессов и добавлять необходимое количество новых процессов.

Лично у меня было два скрипта - dispatcher и script. Первый запускает скрипты и отслеживает наличие необходимого количетва процессов скрипта script, второй выполняет нужные нам действия и по завершению запускает новый процесс script.

Система работает, как часы smile Причем можно с легкостью регулировать количество процессов script.

Удачи smile
PM MAIL   Вверх
nerezus
Дата 22.11.2008, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Вопрос: Лучше писать этот скрипт на PHP или Perl?
 Нет разницы.

Цитата

А лучше всего использовать нативную прогу, которую
 Смысл?

Цитата

Wowa php как демон тяжелый получается.
 Это некритично. Но вот ограничения пхп не позволяют создавать демоны удобно. Как минимум нет потоков.

Цитата

Очевидно, что к примеру с сокетами он будет работать медленнее, хотя бы потому что его код будет транслироваться на код сей (грубо сказал, понимаю). Си же сам понимаешь более отлаженный язык, более низкоуровневые, и с сокетами работать будет быстрее...
 Лол. Как раз работа с сокетами, базойи т.д. будет одинаковой, т.к. задержка в них не зависит от языка, а связана с внешними факторами.

P.S. Эти ф-ии в пхп, кстати, написаны на C. Но к делу отношения это не имеет.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
w2w
Дата 7.12.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2008

Репутация: нет
Всего: 1



Я работаю только в Linux, в качестве скриптового языка для простеньких вещей использую bash, для сложненьких - php, пока проблем с тормозами и прочими вещами не замечал. 
По ходу прочтения ветки заметил следующее:
1. Некоторые товарисчи не в курсе, что php можно использовать как cli инструмент. К примеру, можно сделать так:
Код

echo -e '#!/usr/bin/php\n\n <?\nphpinfo(); \n?>' > /tmp/myphp.sh
chmod +x /tmp/myphp.sh
/tmp/myphp.sh

Получим на выходе аналог функции phpinfo(), но для консоли. Отлично читаемый вывод, без хтмл тегов.
Что характерно - никаких утечек памяти, никаких нагрузок на апач, более того, апача может и не быть вовсе.

2. Недоверие к php как быстрому скриптовому движку. Я довольно давно программирую на пхп, приходилось ковырять немерянное количество чужих исходных кодов и писать много своих. По личному опыту могу сказать, что большинство тормозов связано с кривым кодом. К сожалению, маркетинговый ход разработчиков php (я о том, что для программирования на php не нужно быть программистом smile ) рикошетом ударил и по самому php в виде Эвереста никуда не годного кода. У меня же есть примеры совсем другого характера. Например, у меня отлично работает биллионговая система подсчета интернет трафика полностью написанная на пхп. Машину практически не грузит. 

3. PHP разрабатывался только для WEB, поэтому для других целей не годится. Это уже из области мифов. Когда заходит  об этом речь, я всегда вспоминаю древнейший миф о том, что sql запрос делающий выборку из нескольких таблиц, работает медленнее, чем из извлекающий данные из одной таблицы. Да пхп разрабатывался для веб, но это было много лун назад и воды с тех пор утекло никак не меньше, чем с тех времен когда на смену файловым БД пришли СУБД smile Сейчас php это намного более мощный инстумент, чем просто движок для web.

Удачи.


PM MAIL   Вверх
pythonwin
Дата 8.12.2008, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: нет
Всего: 36



Цитата(w2w @  8.12.2008,  00:36 Найти цитируемый пост)
У меня же есть примеры совсем другого характера. Например, у меня отлично работает биллионговая система подсчета интернет трафика полностью написанная на пхп. Машину практически не грузит. 

можно поподробнее:
 - какая СУБД
 - характеристики сервера
 - сколько юзеров
 - каков размер траффика и какой канал


PM WWW GTalk Jabber   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1804 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.