Thread HTC-Snob-Fragen (14 answers)
Opened by Froschpopo at 2008-04-03 11:42

pq
 2008-04-03 14:11
#107796 #107796
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Froschpopo+2008-04-03 09:42:51--
Wie cached ihr eigentlich HTML::Template::Compiled-Templates?
Wie muss dann so ein startup.pl aussehen?
Ich möchte die nämlich vorher auch kompilieren, komme aber in der Doku völlig durcheinander...

eine startup.pl:
my $preloaded = HTML::Template::Compiled->preload('/path_to_cache');
du willst wahrscheinlich nicht precompile benutzen, nur preload. precompile kann nur in
wenigen fällen nützlich sein.
Quote
- Wenn ich die Templates precomile, muss ich sie dann überhaupt noch cachen?

wie gesagt, precompile willst du gar nicht benutzen. cachen solltest du immer, wenn möglich.
auch wenn der memory-cache an ist, sollten z.b. neue apache-prozesse nicht neu compilieren
müssen, sondern auf den file-cache zurückgreifen. und genau das macht preload.

Quote
- wenn ich sie nur cachen will, brauche ich dann auch ein startup.pl?

häh? wie, nur cachen?

Quote
- was genau ist cache_dir? Ein Alias für einen imaginären Ordner auf den ich aber dann hinterher über -filename zugreifen kann?

ein echtes verzeichnis auf deinem rechner, in das die kompilierten templates von HTC abgelegt werden.

Quote
- es heisst, dass HTC bei einigen Dingen nicht ganz so schnell ist bzw. nicht schneller als HT. Wovon ist hier die Rede?

ohne jeden cache ist HTC weitaus langsamer als alle anderen template-systeme.
mit file-cache ist es zwar auch noch das langsamste, aber folgt mit sehr kurzem abstand hinter
template-toolkit.
in beiden fällen ist das jedoch meist nicht so tragisch, da man ohne memory-cache meist nur
arbeitet, wenn man CGI nutzt und kein mod_perl z.b. und wenn man CGI nutzt, dauert das laden
des skriptes sowieso so lange, dass das verarbeiten eines templates da nicht viel ausmacht.

also: ohne memory-cache ist HTC langsam, mit memory-cache ist es je nach template und optionen
sogar genauso schnell wie HTML::Template::Pro (in C geschrieben).

Quote
- Wenn in test.html ein <TMPL_INCLUDE> stattfindet, wird letzteres dann in die test.html richtig eingebunden oder findet nur eine "Verlinkung" statt?
Beispiel: Wenn ich 100 mal in test.html andere Dateien include, wird dann die binäre test.html auch um die 100 Dateien größer?

nein, jedes include ist ein eigenes objekt und wird auch im file cache als eigene datei gespeichert.
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

View full thread HTC-Snob-Fragen