LINUX.ORG.RU

Ускорить запуск перл скрипта

 ,


0

1

Есть небольшой перловый скрипт, сам скрипт работает довольно быстро (порядка 1 милисекунды) но из за того что он импортит (use) пол десятка стандартных модулей + свой код то процесс старта занимает довольно много времени (порядка 60 милисекунд) - можно ли както ускорить процесс запуска ? Например сгенерировать байткод (perl -MO=Bytecode) в котором уже будут все необходимые модули чтоб он не бегал по диску и не искал/парсил их ?

★★★★

милисекунд

Переписать на C.

anonymous
()

Ну зависит от того что это за скрипт, что делает. Если можно общение с таким скриптом представить как передача в него данных и затем получение от него данных, то есть ввод-вывод, то есть вариант сделать из него даемон. То есть делаешь так, чтобы скрипт постоянно висел в цикле и слушал, ну допустим именованную пайпу и результат работы также выдавал в пайпу. Работа со скриптом будет заключаться в посыле данных в одну пайпу и получение из другой. Конечно можно и с сокетами, ну это уже просто вопрос как удобнее. В общем если возможно - превращай скрипт в даемон(сервис) и всё будет ок.

ixrws ★★★
()
Ответ на: комментарий от outtaspace

Спасибо большое посмотрел - но с пол пинка като не завелось, да и похоже что время запуска увеличилось. Оставлю пока так как есть может по свободе чтото придумаю.

zaz ★★★★
() автор топика

Это ж сколько раз в секунду он вызывается, что время запуска такое критичное ?

joy4eg ★★★★★
()
Ответ на: комментарий от joy4eg

Ну если я его буду дергать например 10 раз в секунду он мне 60% одного ядра польностью скушает. Но там проблема немного в другом, в среднем его дергают редко - но наплывами. Тоесть: секунд 30-60 никто его не дергает, потом приходит десятка 2-4 конкурентных запроса. А на сервере 4 ядра и этот всплеск генерирует временный оверкоммит по CPU, в свою очередь на сервере крутятся тайм критикал сервисы. В принципе ничего страшного пока не происходит (запас по CPU пока есть хоть и не большой) но этот момент меня немного напрягает.

zaz ★★★★
() автор топика
Ответ на: комментарий от zaz

В общем, тогда присоединяюсь переписать это на С. Или ... переписать на perl6 и скомпилировать в bytecode ;D

joy4eg ★★★★★
()
Ответ на: комментарий от joy4eg

perl6 заводится ещё медленнее, даже когда в байткоде. Этот случай, когда хотели сделать лучше, а получилось странно: язык хороший, но ещё сложнее, а реализация вообще жуть.

ixrws ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.