| FAQ |
| Kalender |
|
|
#11 | ||
|
|||
|
Banned
|
Citat:
Ser dock ingen större skillnad på snabbhet osv.... |
||
|
|
Svara med citat
|
|
|
#12 | |||
|
||||
|
Bara ett inlägg till!
|
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". |
|||
|
|
Svara med citat
|
|
|
#13 | |||
|
||||
|
Mycket flitig postare
|
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é ? |
|||
|
|
Svara med citat
|
|
|
#14 | |||
|
||||
|
Mycket flitig postare
|
Citat:
|
|||
|
|
Svara med citat
|
|
|
#15 | |||
|
||||
|
Har WN som tidsfördriv
|
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.
|
|||
|
|
Svara med citat
|
|
|
#16 | ||
|
|||
|
Banned
|
Citat:
![]() MMCache är nerlagt och PHP-Acc är fortsättningen på koden.... |
||
|
|
Svara med citat
|
|
|
#17 | ||
|
|||
|
Nykomling
|
Citat:
Både php-accelerator och turck-mmcache är "döda" projekt. |
||
|
|
Svara med citat
|
|
|
#18 | ||
|
|||
|
Medlem
|
Jag gillar inte smarty ... även fast den cachar, varför inte använda vyer på databas-sidan?
|
||
|
|
Svara med citat
|
|
|
#19 | ||
|
|||
|
Klarade millennium-buggen
|
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;
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 :)
}
rm -f \`find *.xml -cmin +14` |
||
|
|
Svara med citat
|
|
|
#20 | |||
|
||||
|
Medlem
|
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. |
|||
|
|
Svara med citat
|
| Svara |
|
|