Author Topic: Frage zum dem Cache  (Read 1966 times)

0 Members and 1 Guest are viewing this topic.

Michael

  • Guest
Frage zum dem Cache
on: Thu, 30. November 2006 - 17:02:07
Hallo

wir haben unser Projekt komplett in vLib realisiert vor einem Jahr, und sind auch sehr zufrieden, jetzt haben wir allerdings sehr viel Traffic auf unseren Seiten, und deshalb würde ich gerne die Cache funktion nutzen.

Leider habe ich hier keine Hinweise gefunden, wie man seine Seite aufbaut um den Cache zu nutzen:

Code: [Select]
/* Created on: 30.11.2006 */
include(vLIB/vlibTemplate.php);

 
$tmpl = new vlibTemplateCache(template/test.htm,$options);

$test = "Testeintrag zum ausprobieren";

$tmpl->setVar(testausgabe,$test);
$tmpl->setCacheLifeTime(604800);
$tmpl->setCacheExtension(txt);
$tmpl->pparse();

hiermit wird dann auch ein cache file erstellt der dann alles drin hat was im template test.htm an html code beinhaltet

Meine Frage ist, das was ich oben als code geschrieben habe soweit in Ordnung ??? und wie verhält sich das ganze
noch wegen dem $tmpl->ClearCache(); wann und wo wird der eingesetzt, und was hat es mit der Variable $options auf sich.

Wäre nett, wenn Ihr ein paar Tipps hättet

Gruß

Michael

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Frage zum dem Cache
Reply #1 on: Thu, 30. November 2006 - 21:24:36
Bitte die Dokumentation lesen, danke!

Ich benutze vlibTemplateCache nie, obwohl es einen enormen Performance-Zuwachs bringt. Mich stört der benötigte "chmod" bei jeder neuen Installation.

Hier meine Beispiele:
Code: [Select]
function vlib_1_2()
{
        $tpl = new vlibTemplateCache(vlib/test_1_1.html);

        for ($i = 0; $i < 5; $i++)
        {
            $tpl->setvar("var$i", VLIB . mt_rand());
        }

        $tpl->pparse();
}

function vlib_2_1()
{
        global $loop;

        $tpl = new vlibTemplateCache(vlib/test_2_1.html);
        $tpl->setLoop(loop, $loop);
        $tpl->pparse();
}

Zusätzlich gibt es hier im englischen Forum auch noch eine Information, dass "recache" nicht mehr gebraucht wird. Wenn sich das Template ändert wird neu geparst.

Bitte die Suchfunktion benutzen, danke!

Gruß
Claus

Michael

  • Guest
Re: Frage zum dem Cache
Reply #2 on: Fri, 01. December 2006 - 02:55:45
Hallo ClausVB

ich bin genauso schlau wie vorher, die dokumentation muß ich nicht lesen, die habe schon lange in ausgedruckter Form vorliegen, da habe ich gestern als erstes reingeschaut.

wenn ich alles richtig verstanden habe, wird doch ohne hin nur das gecached was in den templates steht, sprich der html code, mir ist nun gestern aufgefallen, das zwar ein cache file erstellt wird, sobald ich aber etwas in dem template file ändere, das neue sofort aber wieder angezeigt wird, dies dürfte ja eigentlich gar nicht passieren, den ich hatte ein setCacheLifeTime(604800) eingestellt von einer woche, also wurde doch überhaupt nicht das cache file angezeigt sondern das template.

Bei Smarty müßte ich erst einmal den Cache file löschen bevor ich eine Änderung auf der seite sehen könnte, dies wäre ja dann auch korrekt, irgendwie beschleicht mich das Gefühl das hier niemand TemplateCache mit VLib am laufen hat.

Und mit dem Beitrag über das recache meintest du sicher diesen beitrag /forum/index.php/topic,159.0.html den hatte ich auch bereits gestern gelesen, mir ist dabei nicht ganz klar wie man dies in sein bestehendes System einbindet.

Eventuell ist es vielleicht doch besser alles auf Smarty umzustellen, wenn die Cache funktion in vLib so schwierig ist.

EIne Frage noch, wieso jedes mal neu chmoden ??? Installation ???

Gruß

Michael

Michael

  • Guest
Re: Frage zum dem Cache
Reply #3 on: Fri, 01. December 2006 - 03:04:45
achso hatte ich doch glatt vergessen, was hat es mit der Variable $options auf sich:

$tmpl = new vlibTemplateCache(template/test.htm,$options);

hatte ich ja schon in meiner ersten frage stehenm hast du sicherlich übersehen, so steht es jedenfalls ja in der dokumentation drin

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Frage zum dem Cache
Reply #4 on: Mon, 04. December 2006 - 16:42:54
Zur Frage mit den Options:

Code: [Select]
/**
         * FUNCTION: vlibTemplate
         *
         * vlibTemplate constructor.
         * if $tmplfile has been passed to it, it will send to $this->newTemplate()
         *
         * @param string $tmplfile full path to template file
         * @param array $options see above
         * @return boolean true/false
         * @access private
         */
(...)
if (is_array($options)) {
                foreach($options as $key => $val) {
                    $key = strtoupper($key);
                    if ($key == PATH) {
                        $this->setPath($val);
                    }
                    else {
                        $this->_setOption($key, strtolower($val));
                    }
                }
            }

Laut Doku: "Please see the OPTIONS section for further details of how you can configure your own cache system. "

Mehr kann ich dazu nicht sagen.

Quote
den ich hatte ein setCacheLifeTime(604800) eingestellt von einer woche
Die Methode habe ich noch nie benutzt. Ich kann somit nicht weiterhelfen.

Quote
irgendwie beschleicht mich das Gefühl das hier niemand TemplateCache mit VLib am laufen hat.
Ich habe es nicht im Einsatz und ich bin der einzige, der hier antwortet. Wie Smarty cached weiß ich nicht, aber "chmod" (Schreibrechte) für "templates_c" sind auch hier bei jeder Neuinstalltion notwendig.. Beim CMS "Papoo" (Template Engine: Smarty) sind das bis zu zehn Verzeichnisse. Mich nervt das gewaltig. Würde ich vlibTemplateCache einsetzen müsste ich auch bei jeder Installation unter Linux, die Schreibrechte beachten. Ohne Schreibrechte kein Caching, deswegen verwende ich das nicht. Die 20 Millisekunden haben meine Besucher Zeit auf die Seite zu warten. ;D

Quote
mir ist dabei nicht ganz klar wie man dies in sein bestehendes System einbindet.
Wie der Post dort schon aussagt, ist die genannte Funktionalität bereits umgesetzt. Der Post ist von 2003. Das bedeutet jedes Release nach dem 15. Mai 2003 hat dieses Feature enthalten. Mit jeder Änderung des Templates wird auch neu gecached. Caching funktioniert also hervorragend mit vLIB.

Quote
Eventuell ist es vielleicht doch besser alles auf Smarty umzustellen, wenn die Cache funktion in vLib so schwierig ist.
Smarty cached unter Windows auf jeden Fall schneller als vLIB. Auf Linux ist jedoch vLIB manchmal schneller. Wenn die Caching-Features jedoch besser sind, stell ruhig auf Smarty um. Bedenke jedoch, dass unter Smarty mit dem Unix-Timestamp gearbeitet wird, und das führt auf manchen Plattformen dazu, dass ein Datum vor 1970 und nach 2038 nicht auf deutsch ausgegeben werden kann. Mit vlibDate ist das kein Problem. Außerdem fehlt bei Smarty die RDBMS Unterstützung völlig. Auf Methoden wie "setdbloop" musst Du also verzichten.

Gruß
Claus
Last Edit: Mon, 04. December 2006 - 16:50:55 by ClausVB

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Frage zum dem Cache
Reply #5 on: Mon, 04. December 2006 - 16:56:04
Quote
allerdings sehr viel Traffic auf unseren Seiten
Von wieviel Traffic reden wir eigentlich? Mehr als 100 User pro Minute?

Ich habe mal einen PHP-Benchmark angehängt. Wenn Euer Server dazu mehr als 30 Sekunden braucht, würde ich neue Hardware empfehlen. Mein Hetzner-Server benötigt ca. 29 Sekunden und mein Strato-Server ca. 24 Sekunden.

Das Ergebnis sollte so aussehen:

Code: [Select]
simple             1.139
simplecall         0.714
simpleucall        0.996
simpleudcall       1.135
mandel             5.356
mandel2            6.615
ackermann(7)       1.595
ary(50000)         0.154
ary2(50000)        0.126
ary3(2000)         2.233
fibo(30)           3.189
hash1(50000)       0.190
hash2(500)         0.376
heapsort(20000)    1.094
matrix(20)         1.054
nestedloop(12)     1.992
sieve(30)          0.933
strcat(200000)     0.087
------------------------
Total             28.977

Gruß
Claus

PS: Der PHP-Benchmark konnte für einige Zeit bei "php.net" heruntergeladen werden. Ich finde ihn im Moment aber nicht mehr. Man kann den Benchmark hier nur herunterladen, wenn man registriert und angemeldet ist.
Last Edit: Mon, 04. December 2006 - 21:39:40 by ClausVB