Schrift
[thread]485[/thread]

Templatemodul oder reines CGI oder was?

Leser: 1


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
olli666
 2005-04-25 21:00
#4883 #4883
User since
2005-04-25
11 Artikel
BenutzerIn
[default_avatar]
Hallo Community,

ich plane eine größere Community mittels Perl zu realisieren. Es werden massig Formulare (ca. 30-40) benötigt und sehr viele dynamische Inhalte zu generieren sein. (Messagingsystem, Geburtstags/Eventkalender, zu abbonierende Info-Channels ...), Ich rechne außerdem mit Peeks von ca. 500 Usern/Sessions. Der Einsatz von mod_perl steht hier außer Frage. Trotzdem bleiben diverse Fragen offen:

1. War hat Benchmarks zu diversen Templating-Modulen und deren Verhalten im Heavy-Load-Bereich? (Embperl, Mason, TemplateToolkit interessiert mich da besonders) Wie skaliert was? (Stichwort: Intelligentes Caching bei Mason)
2. CGI.pm und Apache::Registry scheint ganz flott zu sein und die Formularverarbeitung/implementierung ist dank CGI.pm kein Problem. Guidelines auf perl.apache.org gibt es auch, also was spräche gegen diese Kombination? Ein Problem bei der Trennung von Layout und Code seh ich vorläufig erstmal nicht denn die Formatierung der Websites wird mit einem reinen CSS-Layout realisiert, also ohne Tabellen/Frames. CGI.pm/Apache::Registry wäre also meine bevorzugte Variante das ganze aufzuziehen.
3. Mason scheint auch ganz nett zu sein aber ich finde irgendwie keine Rezepte zur Formularverarbeitung. Wer hat schon Erfahrung mit Mason gesammelt? Kann man CGI.pm (wegen Formularverarbeitung) und Mason mixen oder gibt es da Probleme oder dies gar nicht notwendig?

So, ich hab da jetzt einfach mal das hingeschrieben was mir so einfällt. Will heißen, gebt eueren Senf ab, ich bin da richtig scharf drauf und im Zweifelsfalle könnt Ihr mich auch als Noob beschimpfen :-)

Gruß Oliver
ptk
 2005-04-25 21:20
#4884 #4884
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Hier ein paar Zahlen (st = Text::ScriptTemplate, tt = Template-Toolkit, ht = HTML::Template, jeweils mit und ohne Cache (ueber das Filesystem, nut bei Text::ScriptTemplate ist es ein Memory-Cache).

Im realen Leben duerften ganz andere Zahlen herauskommen. Insbesondere hat man bei Template-Toolkit eine ganze Menge Filter-, Include- und Pluginmoeglichkeiten, die bestimmt nicht die Performance steigern (im Gegenteil), die Programmierung aber erheblich erleichtern.

Die Frage ist auch, ob man mehr als 1000 Zugriffe/Sekunde erwartet :-)

Code: (dl )
1
2
3
4
5
6
7
           Rate       st       tt tt_cache ht_cache       ht st_cache
st 1684/s -- -18% -18% -26% -26% -34%
tt 2054/s 22% -- -0% -9% -9% -19%
tt_cache 2055/s 22% 0% -- -9% -9% -19%
ht_cache 2262/s 34% 10% 10% -- 0% -11%
ht 2262/s 34% 10% 10% 0% -- -11%
st_cache 2535/s 51% 23% 23% 12% 12% --


EDIT: Ich sehe gerade, dass mein Benchmark-Code nicht ganz funktioniert, da cache und nicht-cache die gleichen Ergebnisse liefert...\n\n

<!--EDIT|ptk|1114456672-->
Ishka
 2005-04-25 21:23
#4885 #4885
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
für Templates verwende ich gerne HTML::Template. HTML::Template hat Funktionen, um Templates, sind sie einmal im Speicher, öfters wiederzuverwenden, von daher sollte es auch recht flott sein.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
betterworld
 2005-04-26 00:48
#4886 #4886
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Ich habe gehoert, dass bald HTML::Template::Compiled "herauskommen" soll, das wird dann noch schneller sein
olli666
 2005-04-26 12:52
#4887 #4887
User since
2005-04-25
11 Artikel
BenutzerIn
[default_avatar]
Erstmal Dank für die bisherigen Antworten. Hat noch jemand Erfahrungen mit Mason sammeln können? Und was spricht gegen Apache::Registry/CGI.pm? Wie gesagt, mir geht es um Speed im Heavy-Load-Bereich (Skalierung) und eine komfortable Formularverarbeitung.

Gruß Oliver
pq
 2005-04-26 14:33
#4888 #4888
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=betterworld,25.04.2005, 22:48]Ich habe gehoert, dass bald HTML::Template::Compiled "herauskommen" soll, das wird dann noch schneller sein[/quote]
jo, wird aber noch dauern, bis die meistverwendeten HTML::Template-optionen
portiert sind.
aber sobald die letzten fehlermeldungen weg sind, kommt es schonmal raus
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2005-04-26 15:26
#4889 #4889
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Gegen Apache::Registry spricht eigentlich nichts. Damit duerftest du in etwa die gleiche Geschwindigkeit wie bei einem reinen mod_perl-Handler erreichen. Die Verwendung von CGI.pm zum HTML-Bauen ist auch OK, insbesondere wenn man nicht plant, die HTML-Seite von einem HTML-Designer schreiben zu lassen.
olli666
 2005-04-26 15:33
#4890 #4890
User since
2005-04-25
11 Artikel
BenutzerIn
[default_avatar]
[quote=ptk,26.04.2005, 13:26]Gegen Apache::Registry spricht eigentlich nichts. Damit duerftest du in etwa die gleiche Geschwindigkeit wie bei einem reinen mod_perl-Handler erreichen. Die Verwendung von CGI.pm zum HTML-Bauen ist auch OK, insbesondere wenn man nicht plant, die HTML-Seite von einem HTML-Designer schreiben zu lassen.[/quote]
Hi ptk,

Ah, das wollte ich hören! Das mit dem Speed seh ich auch so, Apache::Registry + CGI.pm scheint da ne gute Wahl. Bei Mason hab ich auch irgendwie das Problem das mir die Konfiguration und das benötigen zusätzlicher Module nicht in den Kram passt ... und Template-Code, egal ob TT oder HTML::Template finde ich ehrlich gesagt auch etwas hässlich.

Bitte mehr Senf abgeben :-)

Gruß Oliver
Strat
 2005-04-26 16:34
#4891 #4891
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Apache::Request duerfte, wenn man viel von der Apache-Funktionalitaet verwenden kann, wohl um einiges schneller als Apache::Registry sein...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
olli666
 2005-04-26 17:03
#4892 #4892
User since
2005-04-25
11 Artikel
BenutzerIn
[default_avatar]
[quote=Strat,26.04.2005, 14:34]Apache::Request duerfte, wenn man viel von der Apache-Funktionalitaet verwenden kann, wohl um einiges schneller als Apache::Registry sein...[/quote]

Ok Strat, kann ich denn CGI.pm mit mod_perl-skripten mischen oder gibt es da Probleme? Wenn ich mich nicht irre ist Apache::Request sozusagen dann eine Untermenge von CGI.pm aber eben pures mod_perl. Ich wollte natürlich unter CGI.pm nicht nur die eingebauten Funktionen für Formulare verwenden sondern auch Sessions, Uploads ... Also mod_perl mit CGI.pm mischen oder gleich reines mod_perl programmiern? Ich dachte CGI.pm unter Apache::Registry sollte schnell genug sein sowie einigermaßen komfortabel für die eigentlich Aufgabe (Community). Schliesslich wäre es auch etwas mehr Aufwand reines mod_perl zu programmieren, oder?
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2005-04-25 21:00.