Cytat(by_ikar @ 9.03.2012, 00:12:05 )

@up a co w przypadku jak większość danych musi być dynamicznie pobieranych? Np jakaś mapa, a po tej mapie poruszają się inni gracze i żeby każdy się widział, to po 5 minutach dopiero się zobaczą bo odświeży się cache?
Nie tyle co cache, co optymalizacja i konkretny sprzęt. Cache w przypadku dynamicznych danych nijak nie spełni swojej roli.
Ja u siebie do danych dynamicznych (ale nie takich co zmieniaja sie co sekunde ale np raz co minute a raz co 10 minut) stosuje cache które jest dostępne za pomoca jakiegos ID i podając to ID mozna je rowniez wykasowac. I Dla bardziej popularnych fragmentow dynamicznych strony w modelach ktore grzebią w tych danych usuwam zawsze cache jezeli istnieje (te cache ktore sie zdeaktualizowaly), jesli robie commit do bazy danych.
Ale trzeba sie przy tym troche opisac, w przypadku ogolnym jest to raczej niewykonalne.
Najfajniej jest cachować kawałki strony i z tych kawałków sklejac całą stronę, nie cachując elementów silnie dynamicznych.
Np dla strony z mocno rozbudowanym nagłówkiem, zawierajacym menu generowane na podstawie bazy danych, zastapienie nagłówka i stopki elementami cachowanymi i regenrowanymi w razie potrzeby skrocilo czas ladowania kazdej podstrony o prawie połowę.
widze ze Crozin czyta ten temat, więc powiem

Tak, tam przydały się aktywne widoki ktore same sprawdzaly czy cache jest swieze i regenerowały sie w razie potrzeby a jak nie to wczytywaly sie z cache, a z punktu widzenia kontrolerów czy byly cachowane czy nie wygladalo to w dosc czytelny sposob: $view->render() praktycznie zadnych zmian w poroownaniu do wersji bez cachowania kawałków.
wiem ze jest esi ale cache w klasach widokow jest mniej klopotliwe, nie wymaga robienia routingu specjalnie dla cachowanych fragmentów. moze varnish troche szybciej dziala ale mimo wszystko silnik PHP rowniez znacznie szybciej skleja pliki niz generuje od nowa HTML.
Ja przychylam sie raczej do cachowania gotowych zrenderowanych kawałków stron niż zapytań - wychodzi w zasadzie na to samo, a wydajnosc jest jeszcze lepsza. Bo jesli ze scachowanego zapytania wyrenderujemy troche htmla 2 razy to 2 razy wyjdzie nam to samo, nie ma sensu, lepiej zapisac do pliku/apc gotowy html.
co ciekawe, zauwazylem ze cachowanie gotowego htmla w plikach dziala szybciej (ok 20%) niz cachowanie w APC. Nie umiem tego wyjasnic, moze to wynika z marnego dysku na moim lapie.