Kom ihåg mig?
Home Menu

Menu


Bästa sätt att cacha sidor?

 
Ämnesverktyg Visningsalternativ
Oläst 2005-03-30, 14:36 #11
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Citat:
Ursprungligen postat av Micke04
Citat:
Ursprungligen postat av digiArt
Eller så går man över till .NET så finns det inbyggt, kräver endast en rad kod.
Ja när vi fått lite rullning på våra affärer kanske vi har råd med licenser osv.. men jag har inte sett många bra asp .net sidor, kan du ge några exempel ?
Vårt egna lilla Luderstorm är omskrivet i .NET....


Ser dock ingen större skillnad på snabbhet osv....
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 15:28 #12
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Att hålla på med proxy och grejer låter som mycket arbete och ändå inte som permanent lösning. Jag skulle välja att skiva effektivare kod framför proxy alla dagar. Här följer två snabbåtgärder som borde vara enkelt fixat:

1. Som Grazzy sa att låta PHP-koden lagra statiska sidor. PHP's inbyggda buffer gör som sagt livet enkelt. Använd crontab efter behag.

2. Slå på cache i SQL-servern. I mysql heter det så enkelt som query cache och aktiveras i my.cnf med raden "query_cache_size = <storlek>MB".
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 20:57 #13
Jawns avatar
Jawn Jawn är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 986
Jawn Jawn är inte uppkopplad
Mycket flitig postare
Jawns avatar
 
Reg.datum: Aug 2004
Inlägg: 986
Vad kan ni rekommendera för mig som kör en toplista som hämtar mycket information för varje besökare från databasen hela tiden?

grazzy's idé ?
Jawn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-31, 01:02 #14
Qo-naqs avatar
Qo-naq Qo-naq är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2003
Inlägg: 662
Qo-naq Qo-naq är inte uppkopplad
Mycket flitig postare
Qo-naqs avatar
 
Reg.datum: Apr 2003
Inlägg: 662
Citat:
Ursprungligen postat av hnn
Citat:
Originally posted by -Micke04@Mar 30 2005, 14:17
Citat:
Ursprungligen postat av digiArt
Eller så går man över till .NET så finns det inbyggt, kräver endast en rad kod.
Ja när vi fått lite rullning på våra affärer kanske vi har råd med licenser osv.. men jag har inte sett många bra asp .net sidor, kan du ge några exempel ?

Vårt egna lilla Luderstorm är omskrivet i .NET...
Playahead är programmerat i ASP.NET och är riktigt snabb.
Qo-naq är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-31, 22:34 #15
ZNs avatar
ZN ZN är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2003
Inlägg: 1 214
ZN ZN är inte uppkopplad
Har WN som tidsfördriv
ZNs avatar
 
Reg.datum: Apr 2003
Inlägg: 1 214
PHP-Acc är instabil, testa http://turck-mmcache.sourceforge.net, mycket bra och stabil, och som nämnts tidigare, försök få så många querys som möjligt att cachas, kolla så att dom använder index, tabelltyper, innodb kanske gör susen på vissa tabeller genom att frigöra locks osv...finns massor man kan göra.
ZN är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-31, 23:28 #16
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
Citat:
Originally posted by Bitbull@Mar 31 2005, 22:34
PHP-Acc är instabil, testa http://turck-mmcache.sourceforge.net, mycket bra och stabil, och som nämnts tidigare, försök få så många querys som möjligt att cachas, kolla så att dom använder index, tabelltyper, innodb kanske gör susen på vissa tabeller genom att frigöra locks osv...finns massor man kan göra.
PHP-Acc är TURCK MM-Cache

MMCache är nerlagt och PHP-Acc är fortsättningen på koden....
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-01, 00:25 #17
Crotalus Crotalus är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 40
Crotalus Crotalus är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 40
Citat:
Ursprungligen postat av hnn
Citat:
Ursprungligen postat av Bitbull
PHP-Acc är instabil, testa http://turck-mmcache.sourceforge.net, mycket bra och stabil, och som nämnts tidigare, försök få så många querys som möjligt att cachas, kolla så att dom använder index, tabelltyper, innodb kanske gör susen på vissa tabeller genom att frigöra locks osv...finns massor man kan göra.
PHP-Acc är TURCK MM-Cache

MMCache är nerlagt och PHP-Acc är fortsättningen på koden....
eAccelerator (http://eaccelerator.net/) är en fortsättning på turck-mmcache.

Både php-accelerator och turck-mmcache är "döda" projekt.
Crotalus är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-14, 00:54 #18
matlin matlin är inte uppkopplad
Medlem
 
Reg.datum: Nov 2004
Inlägg: 53
matlin matlin är inte uppkopplad
Medlem
 
Reg.datum: Nov 2004
Inlägg: 53
Jag gillar inte smarty ... även fast den cachar, varför inte använda vyer på databas-sidan?
matlin är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-14, 11:22 #19
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
Som en vän häromdagen påpekade så kan man även serialisera objekt till disken i PHP. Det kan vara praktiskt om man har lite overhead på att skapa objekten.
Se http://se.php.net/serialize och http://se.php.net/unserialize


Här är kod för att cachelagra filer i php.
Kod:
    ob_start(); # startar output buffering
    ob_implicit_flush(0); # stänger av automatisk flush

    /* rss_output är en hemmagjord funktion som skriver ut en rss-feed
     * från ett mysql-result. Den skriver till vanliga stdout/skärmen.
    */
    rss_output($result); 
    $contents = ob_get_contents(); #spara buffern i $contents
    ob_end_clean(); #rensar buffern och slår på automatisk flush

    # skriver ner filen till $rss_filename som är ett unikt filnamn baserat på alla statevariablar
    # sorteringsordning, sökord, kriterier etc.
    $fh = fopen($rss_filename,"w");
    fwrite($fh,$contents,strlen($contents));
    fclose($fh);

    # spotta ut innehållet på skärmen (annar visas inte datan första gången man kör) 
    echo $contents;
För att sedan använda sig av den cache-lagrade filen är det bara att titta om den finns.
Kod:
if (file_exists($rss_filename)) {
        Header("Content-Type: application/xml"); # spotta ut en header (specifikt för xml/rss)
        echo file_get_contents($rss_filename); # läs in och skriv ut filen
        die(); # lite fulhack, men sånt är livet :)
}
För att göra livet enkelt för mig har jag valt att inte läsa timestamps osv i mina script, utan det sköts istället via ett crontabjob som med följande rader tar bort alla filer som är äldre än 14 minuter:
rm -f \`find *.xml -cmin +14`
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-04-14, 12:35 #20
chrizzs avatar
chrizz chrizz är inte uppkopplad
Medlem
 
Reg.datum: Aug 2004
Inlägg: 296
chrizz chrizz är inte uppkopplad
Medlem
chrizzs avatar
 
Reg.datum: Aug 2004
Inlägg: 296
Turck mmcache använder jag också, fungerar mycket bra.

Som nämnts tidigare kan man göra väldigt mycket i mysql-inställningarna (antar att du kör mysql?). I min debian-dist finns en rad exempelkonfigurationer som baseras på hur mycket minne datorn har. Jag har modifierat lite och har ställt in så här för myisam-tabeller (1gb minne):

key_buffer = 512M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 4M
read_buffer_size = 4M
myisam_sort_buffer_size = 128M
thread_cache = 8
query_cache_size = 64M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 2

Vet inte om det hjälper dig något, men det ger en hint iaf. Det som är default i mysql är vad jag sett anpassat för väldigt lite minne.

query_cache_size kan vara mycket större om dina tabeller är hyfsat statiska. Uppdateras dem ständigt så nollställs all cache för den tabellen.
chrizz är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017