Как я могу уменьшить Perl время запуска сценария CGI?

Нет, вы не можете сделать это в инициализаторе. Вытащите protocol к внешней переменной.

export const protocol = "http";

, а затем используйте переменную / const в обоих или более местах инициализатора.

5
задан Kev 14 January 2011 в 18:09
поделиться

6 ответов

Рассмотрите использование CGI:: Быстро для запуска одного процесса жемчуга для обрабатывания нескольких запросов. Приложило мне очень мало усилий переключить некоторые мои большие сценарии CGI к CGI:: Быстро. В отличие от mod_perl, очень легко выполнить CGI:: Быстро при хостинге сайтов, потому что можно перезапустить сценарии, не перезапуская Apache (по крайней мере это - то, что мой hoster сказал мне, когда я попросил mod_perl).

12
ответ дан 18 December 2019 в 05:23
поделиться

Как насчет того, чтобы использовать mod_perl для выполнения документов на получение?

10
ответ дан 18 December 2019 в 05:23
поделиться
  • Удостоверьтесь, что это - на самом деле Ваше узкое место
  • Только импортируйте модули, в которых Вы нуждаетесь
  • Удостоверьтесь, что Вы не должны искать огромное количество мест для нахождения их
  • Считайте процессы наличия с дорогостоящим запуском выполненными горячий (например, как демон) и использование более легкий вес сценарии CGI для запуска их
  • Изучите различные акселераторы вместо того, чтобы делать, полный CGI от оболочки (зависит от того, что Вы используете для обслуживания страниц).
9
ответ дан 18 December 2019 в 05:23
поделиться

Вы могли всегда пробовать меньше прагмы:

use less 'starttime';

Конечно, это системно-зависимо*. Ваш лучший выбор состоит в том, чтобы использовать mod_perl или один из модулей FastCGI: CGI:: Быстро, FCGI, и т.д.

Если это должно быть быстро от командной строки, можно хотеть переместиться в клиент-серверную архитектуру (который является всем FastCGI).

* предупреждение никаких систем в настоящее время реализует starttime опцию для меньшего количества прагмы.

4
ответ дан 18 December 2019 в 05:23
поделиться

Попытайтесь использовать SpeedyCGI или Персистентный Perl.

Оба реализовывают примерно ту же идею: Вместо интерпретатора Perl, они обертка, которая анализирует программу и сохраняет ее в памяти, таким образом экономя время, требуемое для инициализации интерпретатора и парсинга на каждом выполнении.

Это должно хорошо работать с двойной установкой среды, которую Вы описали, который/может бы не иметь место при использовании CGI:: Быстро или mod_perl.

ОТРЕДАКТИРУЙТЕ, Если это помогает, прекрасный. Если это не делает, необходимо будет иметь размеры, где сценарий тратит свое время выполнения.

1
ответ дан 18 December 2019 в 05:23
поделиться

Ну, другие уже предположили, что CGI мог бы быть Вашей проблемой здесь, таким образом, я буду полагать, что Вы не можете удалить CGI из изображения.

Вы могли бы хотеть рассмотреть эту старую статью. По-видимому, один источник медленного времени запуска является огромным @INC, настолько консолидирующим, все в коротком PERL5LIB, кажется, помогает чрезвычайно (который, кажется, справедливое предположение, но я никогда не пробовал его).

Кроме того (или дополнительно), если Вы не возражаете платить некоторую цену во время выполнения, можно использовать Класс:: автоиспользовать

Приятного отдыха!

2
ответ дан 18 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: