Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [framework]Jakie cache lepsze.
Moli
post
Post #1





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Pisząc frameworka, zacząłem się zastanawiać, nad rozwiązaniem cache. Czy lepszym sposobem będzie cachowanie wyników z bazy(cache w klasie SQL) czy sposób z CodeIgniter, cachowanie całej metody (ob_get_content()).

Który sposób będzie lepszy/szybszy ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Osobiście preferuje cachowanie poszczególnych elementów lub całych stron. Zyskujemy tutaj jeszcze na czasie, ponieważ nie musimy generować strony, od razu wysyłamy plik z gotową stroną.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
Osobiście preferuje cachowanie poszczególnych elementów lub całych stron. Zyskujemy tutaj jeszcze na czasie, ponieważ nie musimy generować strony, od razu wysyłamy plik z gotową stroną.

O ile da sie taki fragment z cache'owac -- bo np jak mamy w nim dane uzaleznione od usera go przegladajacego to tak latwo nie bedzie (ew. mozna dla kazdego usera cache tworzyc)


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
pink
post
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.09.2007
Skąd: Sheffield, UK

Ostrzeżenie: (0%)
-----


Cytat(sf @ 1.09.2007, 14:40:55 ) *
Osobiście preferuje cachowanie poszczególnych elementów lub całych stron. Zyskujemy tutaj jeszcze na czasie, ponieważ nie musimy generować strony, od razu wysyłamy plik z gotową stroną.


IMO cachowanie powinno być trasparentne i niskopoziomowe. Gównym elementem wpływającym na czas generowania strony i obciążenie serwera są zapytania SQL, ewentualnie żądania SOAP. Ja preferuję cachowanie wyników zapytań via memcache. Dodatkowo przydatne może być uaktywnienie natywnego cache (qcache) w mysql. Trzeba jedynie robić to z głową, bo nie każde zapytanie powinni być cachowane.

Cachowanie całych stron nie jest efektywne - cachowana strona zabiera o wiele więcej miejsca w cache niż wynik zapytania, zatem przetworzenie jej (zczytanie, deserializacja) może okazać sie o wiele bardziej czaso/zasobożerne. Pozatym to żródło potencjalnych kłopotów.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
Cachowanie całych stron nie jest efektywne - cachowana strona zabiera o wiele więcej miejsca w cache niż wynik zapytania, zatem przetworzenie jej (zczytanie, deserializacja) może okazać sie o wiele bardziej czaso/zasobożerne. Pozatym to żródło potencjalnych kłopotów.

No i powiesz mi ze serwowanie dynamicznej tresci jest szybsze niz samego pliku z HTMLem?
Poza tym moze (tzn jest to OK) zajmowac wiecej miejsca, bo chodzi nam o oszczedzenie mocy CPU (minimalizacja czasu uzyskania strony) kosztem zajmowania miejsca.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
nrm
post
Post #6





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


ja preferuje cache samego sqla, tym bardziej, że z danego cache korzystam w n-tu miejscach serwisu, cache strony nie ma dla mnie najmniejszego sensu (w moich przypadkach, bo czasem zdarza się skeszować całe strony).


--------------------
Go to the top of the page
+Quote Post
pink
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.09.2007
Skąd: Sheffield, UK

Ostrzeżenie: (0%)
-----


Cytat(dr_bonzo @ 2.09.2007, 14:50:41 ) *
No i powiesz mi ze serwowanie dynamicznej tresci jest szybsze niz samego pliku z HTMLem?


Nie zrozumieliśmy się chyba, ja mówię o cachowaniu z uzyciem memcache. Operacja odczytu sporej ilości danych zajmie tyle samo czasu co przeparsowanie tego via PHP. Cachowanie stron jako gotowe HTMLe jest oczywiście wydajniejsze - ale realizowalne w bardzo znikomej ilośc projektów, spróbuj cachować stronę forum np, gdzie kazdemu użytkownikowi musisz wygenerować inny zestaw znacznikników nowych postów, etc.

Cytat(dr_bonzo @ 2.09.2007, 14:50:41 ) *
Poza tym moze (tzn jest to OK) zajmowac wiecej miejsca, bo chodzi nam o oszczedzenie mocy CPU (minimalizacja czasu uzyskania strony) kosztem zajmowania miejsca.


Po prawdzie to przypuszczam iż serwowania htmla będzie co najwyżej 30% szybsze niż zaserwowanie pliku PHP robiącego wyłacznie echo. Jak napisałem - najwiekszym problemem są zapytania SQL - one zajmują (via serwer MySQL) najwięcej czasu jak i mocy procesora. Parsowanie nawet bardzo skomplikowanego kodu nie jest aż tak zasobożerne. Tak więc cachowanie samych zapytań jest wystarczającą metodą optymalizacji dla stron których nie można cachować w całości.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 17:19