Jak mohu snížit Perl CGI skript start-up čas?

hlasů
5

Jsem rozvojových nějaký CGI skripty a snažím se najít řešení pro snížení „startovní čas“ produkoval, když jsem importovat mnoho modulů s „pouze“.

Aktualizace:

Řešení poskytované jsou pěkné, ale skripty Pracuji běží jak v konzoli a CGI režimu kontroly, pokud jsou přítomny některé typické proměnné HTTP prostředí.

V „konzoli“, že skládka data „normálně“, a „html režimu“ dělají některé realtime náhrady a poslat další HTTP hlavičky klientovi.

Chtěl bych zlepšit dobu přípravy na provoz v obou případech.

Položena 27/03/2009 v 19:30
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
9
  • Ujistěte se, že je to vlastně vaše problémové
  • Pouze import moduly, které potřebujete
  • Ujistěte se, že nebudete muset hledat obrovské množství míst je najít
  • Zvažte, které mají procesy s nákladné spuštění běhu horké (například jako daemon) a použít lehčí váhy CGI skripty je spustit
  • Podívejte se do různých urychlovačů, spíše než dělat úplné CGI z pláště (záleží na tom, co používáte sloužit stránek).
Odpovězeno 27/03/2009 v 19:34
zdroj uživatelem

hlasů
10

Jak se o použití mod_perl ke spuštění své zatímní listy?

Odpovězeno 27/03/2009 v 19:35
zdroj uživatelem

hlasů
12

Zvažte použití CGI :: Fast za účelem spuštění jednoho procesu perl zpracovat více požadavků. Trvalo mi velmi málo úsilí ke změně některé z mých velkých CGI skripty přes CGI :: Fast. Na rozdíl od mod_perl, je to velmi snadné spustit CGI :: Fast na nepřátelský polohy, protože můžete znovu spustit skripty bez nutnosti restartovat Apache (alespoň to je to, co mě můj hostitel řekl, když jsem požádal o mod_perl).

Odpovězeno 27/03/2009 v 19:36
zdroj uživatelem

hlasů
4

Dalo by se vždy vyzkoušet méně Pragma:

use less 'starttime';

Samozřejmě, že je závislá na systému *. Nejlepším řešením je použít mod_perl nebo jeden z FastCGI moduly: CGI :: Fast , FCGI , atd .

Pokud je potřeba, aby se rychle z příkazové řádky, možná budete chtít přejít na architektuře klient / server (což je vše FastCGI se).

* výstražné systémy, které v současné době zavést možnost StartTime pro menší pragma.

Odpovězeno 27/03/2009 v 19:45
zdroj uživatelem

hlasů
2

No, jiní již naznačil, že CGI může být váš problém tady, takže budu uvažovat, že nelze odstranit CGI z obrázku.

Možná budete chtít, aby zvážila tento starý článek . Zřejmě jednou z příčin pomalého době spuštění je obrovská @INC tak konsolidaci vše v krátkém PERL5LIB Zdá se, že pomůže ohromně (která se zdá být spravedlivé předpoklad, ale nikdy jsem to zkusil).

Alternativně (nebo navíc), pokud vám nevadí platit nějakou cenu za běhu, můžete použít Třídy :: Autouse

Užívat si!

Odpovězeno 28/03/2009 v 19:54
zdroj uživatelem

hlasů
1

Zkuste použít SpeedyCGI nebo přetrvávající Perl.

Oba realizovat zhruba stejnou myšlenku: Místo interpreteru Perlu, že obal, který analyzuje program a udržet ji v paměti, což šetří čas potřebný pro inicializaci interpret a analýza na každém běhu.

To by mělo fungovat v pohodě s nastavením na dual-prostředí, popsané, které by / mohl při použití CGI :: Fast nebo mod_perl nebude tento případ.

EDIT Pokud to pomůže, v pořádku. Pokud se tak nestane, budete muset měřit, kde skript tráví svůj run-time.

Odpovězeno 30/03/2009 v 14:11
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more