Thread mod_perl Skript auch als CGI? (24 answers)
Opened by cbxk1xg at 2006-02-10 19:48

ptk
 2006-02-18 21:50
#29853 #29853
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Heromaster,18.02.2006, 12:41][quote=ptk,12.02.2006, 16:29]Ist der Unterschied zwischen Apache::Registry und einem echten mod_perl-Handler wirklich so groß? Letzendlich erzeugt man mit Apache::Registry intern auch nur einen mod_perl-Handler.[/quote]
Ja, der Unterschied ist extrem. Apache::Registry ist im Prinzip nur eine Schicht, damit Deine CGI-Scripte einen Performance-Vorteil von mod_perl erhalten.
Ich meine, sicherlich kannst Du den Unterschied bis auf ein subtilen Performanceunterschied verkleinern, indem Du mod_perl typische Sachen in das Script schreibst, zum Beispiel anfängst, die ganzen Apache::* Module einzubinden( statt CGI Apache::Request, statt den E/A-Layer von perl Apache::File usw.). Dies ist aber nicht Sinn und Zweck von Apache::Registry, da dann dieses Script nicht mehr unter CGI läuft und Du gleich einen echten mod_perl-Handler schreiben kannst :)[/quote]
Letztendlich liegt der massive Performancevorteil von mod_perl-Handlern gegenüber CGI-Skripten darin begründet, dass nicht bei jedem Request ein fork() gemacht werden muss, der Perl-Interpreter sofort zur Verfügung steht und insbesondere alle Module nur einmal kompiliert werden müssen und danach diesem Apache-Child bis zu dessen Tod zur Verfügung stehen.

Apache::Registry-Skripte verhalten sich in dieser Hinsicht genau wie mod_perl-Handler. Sicher, es gibt etwas Overhead, da bei jedem Request geprüft wird, ob das Skript up-to-date ist und ggfs. neu geladen wird, und weitere Kleinigkeiten. Sicher, es muss auch CGI.pm verwendet werden, aber das alles scheint mir nicht so auf die Performance zu drücken.

Aber es ist von Vorteil, wenn der Autor von Apache::Registry zufällig ein Arbeitskollege ist, da kann man ihn direkt fragen :-) Ich weiß jedenfalls, dass er nur noch reine mod_perl-Handler schreibt.

View full thread mod_perl Skript auch als CGI?