also wenn es sich um sehr viele parallele zugriffe handelt, wuerde ich mod_perl vorschlagen. das hat mal mindestens die folgenden Vorteile:
x) Neucompilierung des Scriptes und aller Module nicht bei jedem Lauf noetig, sondern erfolgt bei der ersten Ausfuehrung des Scriptes. Diese kann weiter beschleunigt werden, wenn du ein startup-script vergibst, das die Module schon beim apache-(re)start vorlaedt und dann fuer alle gemeinsam im speicher behaelt. Laufzeitgewinn: 5-20fach
x) wenn sich ein oder mehrere scripte immer zur selben datenbank mit demselben benutzer verbinden, kannst du weitere Laufzeit gewinnen, indem du
Apache::DBI verwendest
x) die mod_perl-Module sind ueberdies in der Regel deutlich schneller als die entsprechenden CGI-Module
x) du hast besseren Zugriff auf die Apache-APIs und kannst somit viele Sachen in Perl machen, fuer die du sonst externe Mittel benoetigen wuerdest (Authensisierung, ...)
x) Ich habe noch keinen so einfachen File-Upload gesehen wie bei mod_perl
x) Wenn du ein Templating system fuer die HTML-Ausgabe verwendest, kannst du die caching-mechanismen, die die meisten Templating-Systeme bereit stellen, nutzen (z.B. das einfache
HTML::Template hat ein recht gutes)
Nachteile:
x) braucht eventuell mehr Speicher, weil die Scripte vorcompiliert fuer jeden Apache-Prozess im Speicher vorgehalten werden; dies kann aber vermindert werden, indem man groessere Module schon beim Apache-(re)start ueber einen startup-handler vorladen laesst, dann liegen die fuer alle prozesse nur einmal im speicher
x) die programmierung muss sehr sauber sein (mindestens strict, warnings, globale variablen nur readonly, man muss in spezialfaellen aufpassen, dass speicher wieder freigegeben wird), man darf sich nicht auf package main verlassen\n\n
<!--EDIT|Strat|1079346090-->