Zum Inhalt springen

Dringend: Verständnisfrage caching

Erstellt am 18. Mai 2004 · 6 Antworten · letzte Antwort am 13. Juli 2004

Tags: Bilder, Frage

outdoor ·

Hallo Forum,

ich habe ein dringendes Problem mit dem caching auf einer seite, bei der via img-magick die buttons generiert werden. Ich ging bis anhin davon aus, dass durch img-magick erstellte grafiken gecacht werden und so nicht bei jedem Aufruf neu geneiert werden müssen. Offenbar finden nun aber beim Aufruf der Site jedesmal die CPU-lastigen convert-aufrufe durch img-magick statt. Den Cache habe ich ein, kurz ein setup-auszug der site:

config.simulateStaticDocuments = 1
config.simulateStaticDocuments_noTypeIfNoTitle = 1
config.admPanel = 1
config.spamProtectEmailAddresses = 1
config.spamProtectEmailAddresses_atSubst = (at)
config.index_enable = 1
config.no_cache = 0
config.index_externals = 1
#config.cache_periode = 86400
#config.cache_clearAtMidnight = 1

page = PAGE
page.configCache = 1
page.typeNum = 0
[globalVar = TSFE:id=1][globalVar = TSFE:id=85][globalVar = TSFE:id=9][globalVar = TSFE:id=22][globalVar = TSFE:id=24][globalVar = TSFE:id=25][globalVar = TSFE:id=59][globalVar = TSFE:id=60][globalVar = TSFE:id=66][globalVar = TSFE:id=68][globalVar = TSFE:id=71][globalVar = TSFE:id=74][globalVar = TSFE:id=76] 
temp.1 = fileadmin/tmpl/index.html
[else]
temp.1 = fileadmin/tmpl/index_sub.html
[end]

page.stylesheet = fileadmin/tmpl/css/default.css
page.includeCSS {
   file1 = fileadmin/tmpl/css/content.css
} 
page.includeLibs.gmenu_layers = media/scripts/gmenu_layers.php
page.10 = TEMPLATE
page.10 {
   template= FILE
   template.file < temp.1
   workOnSubpart = DOCUMENT_BODY
   marks.MAINNAVIG = HMENU
   marks.MAINNAVIG.1 = GMENU_LAYERS
   marks.MAINNAVIG.1 {
      layerStyle = position:absolute;left:0px;top:0px;VISIBILITY:hidden;
      lockPosition = x
      relativeToParentLayer=1
      relativeToTriggerItem=1
      topOffset = 0
      leftOffset = 195
      hideMenuWhenNotOver = 50
      dontHideOnMouseUp=1
      #displayActiveOnLoad=1
      hideMenuTimer = 1000
      expAll = 1
      NO {
        allWrap =  <tr><td valign="top">|</td></tr>
        XY = [4.w], [4.h]
        backColor = #ffee88     
        #transparentBackground = 1
        transparentColor =#ffee88
        transparentColor.closest = 1
        ATagParams = class="atrans"
        4 = IMAGE
        4.file = fileadmin/tmpl/pix/balken_navi_yel.gif     
        10 = TEXT
        10.text.field = title
        10.offset = 0,34
        #10.text.case = upper
        10.fontFile = fileadmin/fonts/comicbd.ttf
        10.fontSize = 14
        #10.fontColor = #cc9955
        10.fontColor = #cc9933
        10.align = center
        10.niceText = 1
        10.emboss {
           #align= r , b
           offset = -1,-1
           highColor = black : -30
           lowColor = black : +10
           blur = 30
           opacity = 80
           }
       20 < .10
       }
       CUR < .NO
       CUR = 1
       CUR {
            allWrap =  <span class="topnav1_act"> | </span>
            }
      ACT < .NO
      ACT = 1
      ACT {
            allWrap =  <span class="topnav1_act"> | </span>
            }
      RO < .NO
      RO = 1
      RO {
           10.emboss.offset = 3,4
            }   
       }



# Top Navigation 2nd Level
   marks.MAINNAVIG.2 = GMENU_LAYERS
   marks.MAINNAVIG.2 {
   layerStyle = position:absolute;VISIBILITY:hidden; 
   lockPosition = y
   relativeToParentLayer=1 
   relativeToTriggerItem=1
   #dontHideOnMouseUp=1
   hideMenuWhenNotOver=20
   hideMenuTimer=1000
    topOffset = 0 
    leftOffset = 190
      expAll=1 
  NO {
     allWrap =  <tr><td valign="top">|</td></tr>
     XY = [4.w], [4.h]
     transparentColor =#ffffff
     transparentColor.closest = 1
     ATagParams = class="atrans"
     4 = IMAGE
     4.file = fileadmin/tmpl/pix/balken_einfach.gif   
     10 = TEXT
     10.text.field = title
     10.offset = 0,23
     10.fontFile = fileadmin/fonts/comicbd.ttf
     10.fontSize = 12
     10.fontColor = #cc9933
     10.align = center
     10.niceText = 1
     10.emboss {
        offset = 1,2
        highColor = black : -30
        lowColor = black : +10
        blur = 30
        opacity = 80
      }
     20 < .10
     }
      CUR < .NO
      CUR = 1
      CUR {
            allWrap =  <span class="topnav1_act"> | </span>
      }
      ACT < .NO
      ACT = 1
      ACT {
            allWrap =  <span class="topnav1_act"> | </span>
      }
      RO < .NO
      RO = 1
      RO {
           10.emboss.offset = 3,4
     }   
}


# Top Navigation 3nd Level
   marks.MAINNAVIG.3 = GMENU_LAYERS
   marks.MAINNAVIG.3 {
   layerStyle = position:absolute;VISIBILITY:hidden; 
   lockPosition = y
   relativeToParentLayer=1 
   relativeToTriggerItem=1
   #dontHideOnMouseUp=1
   hideMenuWhenNotOver=20
   hideMenuTimer=1000
    topOffset = 0 
    leftOffset = 190
      expAll=1 
      NO {
     allWrap =  <tr><td valign="top">|</td></tr>
     XY = [4.w], [4.h]
     transparentColor =#ffffff
     transparentColor.closest = 1
     #ATagParams = class="atrans"
     4 = IMAGE
     4.file = fileadmin/tmpl/pix/balken_einfach.gif
     10 = TEXT
     10.text.field = title
     10.offset = 0,23
     10.fontFile = fileadmin/fonts/comicbd.ttf
     10.fontSize = 12
     10.fontColor = #cc9933
     10.align = center
     10.niceText = 1
     10.emboss {
        offset = 1,2
        highColor = black : -30
        lowColor = black : +10
        blur = 30
        opacity = 80
      }
     20 < .10
     }
      CUR < .NO
      CUR = 1
      CUR {
            allWrap =  <span class="topnav1_act"> | </span>
      }
      ACT < .NO
      ACT = 1
      ACT {
            allWrap =  <span class="topnav1_act"> | </span>
      }
      RO < .NO
      RO = 1
      RO {
           10.emboss.offset = 3,4
     }   
}

Weiss jemand exakt über die Cache-Mechanismen bei Typo3 Bescheid? Wann sieht sich Typo3 veranlasst, die Buttons neu zu generieren und so die CPU abzukochen? Habe ich irgendwas übersehen?

Wer die Site mal online anschauen will: http://www.nordic-parc.ch

Vielen Dank für Eure Tipps im Voraus
Outdoor

jweiland ·

Woher weisst du, dass die Grafiken für das Menü jedesmal neu gerendert werden? Haben die Dateien "m_????????.gif" alle das gleiche und aktuelle Datum/Uhrzeit?

Jochen Weiland

outdoor ·

Hallo,

Vielleicht habe ich mich nicht so klar ausgedrückt:
Es werden nicht alle grafiken neu gerendert, aber es erfolgt teilweise ein convert aufruf, obwohl die site in der db-tabelle cache_pagesections aufgeführt ist.

Wie gesagt - nicht immer, aber manchmal. Ich kann nicht evaluieren, weshalb es bei der einen gecachten site funktioniert (dann ist auch die Ladezeit o.k.) und manchmal nicht.

Es existiert ja noch eine zweite tabelle (cache-pages) - wofür ist die? hat momentan nur einen Eintrag und der generiert einen overhead.

Gruss
Outdoor

jweiland ·

Das Cachen der Seite hat nichts mit dem Rendern der Menü-Grafiken zu tun. Letztere werden nur dann gerendert, wenn die Grafik nicht schon im typo3temp Verzeichnis liegt.
Aus den Parametern für die Erstellung der Grafik errechnet Typo3 einen Hash-Wert (der dann auch als Dateiname verwendet wird). Ändert sich einer der Parameter dann ändert sich der Hash und falls noch nicht vorhanden wird die Datei neu erzeugt.

Die gewählte Menüart (GMENU Layers) ist natürlich die aufwendigste/langsamste die man sich vorstellen kann. Immerhin bestehen 90% der Webseite aus Javascript Code.

Jochen Weiland

outdoor ·

Hi Jochen,

Seltsam ist aber, dass teilw. die Grafiken offenbar gerendert werden, obwohl kein Parameter verändert wurde und das File schon längst im typo3temp vorhanden ist (Ich nehme an Veränderungen der parameter beziehen sich auf den setup)

An der Site habe ich keinerlei Veränderungen im setup vorgenommen - trotzdem wird der convert-befehl aufgerufen - zuletzt um 10:40.
Dabei wurden Grafiken ersetzt, die bereits existierten.

das gmenu_layers nicht schnell ist, ist schon klar. Was jedoch wiklich auf die Performance schlägt, sind die convert-befehle. Mit den ca. drei sec. Ladezeit, die vom jscript-code von gmenu_layers her resultieren könnte ich leben.

Nun ja - ich hoffe , ich finde hier eine Lösung; auch wenn's im Moment nicht gerade dannach ausschaut

Gruss und Danke
Outdoor

outdoor ·

Hi all,

Muss den Task hier nochmals reanimieren - folgendes:

Wegen dem iex-alpha-kanal bug im iexplorer-png format hatte ich im typo3-install den Wert [FE][png_to_gif] auf 1 gesetzt. (gif satt png) Die Konsequenz war das absaufen der Performance, da die gif-pictures offenbar jedesmal neu aus dem ursprünglichen png-file generiert wurden.

Ich habe jetzt zwei nette Varianten: entweder ich lasse das so und nehme in Kauf, dass der besucher jedesmall bei einem siteload eine partie solitaire spielen kann, oder ich nehme den nervigen ie-bug in Kauf, der mir aber die png's nicht auf transparent setzt -> unschön.

Es sei denn, jemand hat eine Idee, die mein Problem zu lösen vermag. Hat jemand?

Vielen Dank und Gruss
outdoor

molari ·

ich bin mir nicht so ganz sicher, aber gibt's da nicht eine Extension zu? Ich meine ich hätte mal sowas gesehen.

Gruß
Oli