Al di là dei normali provvedimenti descritti al fine di rendere
più veloci o più piccoli i normali programmi Perl, un
programma CGI ha delle ulteriori questioni. Esso viene eseguito diverse
volte al secondo. Dato che, ogni qualvolta viene eseguito, esso
necessita di essere ricompilato e spesso alloca un megabyte, o
più, di memoria di sistema, questo potrebbe rivelarsi mortale.
Compilare in C non vi sarà di aiuto perché il collo di
bottiglia si trova nello spreco di risorse che si ha a causa dal processo
di avvio.
Ci sono due modi gettonati per evitare questo spreco di risorse. Una soluzione
coinvolge l'esecuzione del server HTTP Apache (disponibile su
http://www.apache.org/ ) con uno o l'altro dei moduli plugin mod_perl e
mod_fastcgi.
Con mod_perl ed il modulo Apache::Registry (distribuito con mod_perl), httpd
funzionerà con un interprete Perl integrato che precompilerà
i vostri script e li eseguirà all'interno dello stesso spazio di
indirizzamento, senza effettuare dei fork. L'estensione di Apache darà
a Perl l'accesso alle API interne del server, facendo sì che i
moduli scritti in Perl possano fare proprio tutto quello che può
fare un modulo scritto in C. Per maggiori informazioni su mod_perl, si veda
http://perl.apache.org/
Con il modulo FCGI (da CPAN) e il modulo mod_fastcgi (disponibile su
http://www.fastcgi.com/ ) ogni vostro programma Perl diverrà un
processo demone permanente.
Entrambe queste soluzioni possono avere effetti di vasta portata sul vostro
sistema e sul modo in cui scrivete i vostri programmi CGI, dunque indagate
su di essi con cautela.
Consultate
http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/ .
|