![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 165 Pomógł: 6 Dołączył: 17.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ejo.
Nie mam pojecia co to cache i na jakiej zasadzie dziala. Nie odsylajcie do wikipedii, googla lub search bo juz tam zagladalem. Czytalem o cache o tym ze np. zmniejsza ilosc zapytan... nie wykonuje wszystkiego czy cos w tym rodzaju. Sa to informacje jednak w ogole nie poukladane w mojej glowie... Jest wiele rzeczy, ktorych jeszcze nie zrobilem i nie umialbym narazie zrobic, ale mam jakis zalazek w glowie jak sie za to zabrac i pewnie metoda uczenia sie na wlasnych bledach bym zrobil. Cache to dla mnie czarna magia, nawet jakbym chcial to nie wiedzialbym jak sie za to zabrac, ba! nawet nie wiedzialbym jak z tego korzystac. |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Diablos @ 2005-12-18 21:54:46) (...) Cache to dla mnie czarna magia, nawet jakbym chcial to nie wiedzialbym jak sie za to zabrac, ba! nawet nie wiedzialbym jak z tego korzystac. Zbyt mało wiedzy. Zbyt wielkie aspiracje. IMO Zabierz się za coś co jest w Twoim zasięgu. Przenoszę na Hydepark. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 165 Pomógł: 6 Dołączył: 17.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
@mike_mech: tu nie chodzi o aspiracje, nie zrozumiales
![]() Na wlasnym przykladzie powiem o co mi chodzi: - system szablonow 1. Wiem do czego sluzy, wiem na jakiej zasadzie dziala. 2. Nie odwazylbym sie go napisac, wole korzystac z dostepnych OPT, Smarty. 3. Mam o nim pojecie, wiem jak za niego sie zabrac, wiem ze pisanie takowego byloby dla mnie nowym doswiadczeniem, wiem ze nie mialby wielu funkcji. Interesuje mnie praktycznie tylko 1 pkt. Nie chce narazie pisac cache... |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Przykład cacheowanie danych z bazy danych.
1. Sprawdzasz czy jest plik z cache. 2. Jeśli jest pobierasz z niego dane. 3. Jesli nie ma wykonujesz zapytanie pobierające dane i zapisujesz do pliku. Jeśli uzywasz tego jak trzeba, czyli na przykład do pobrania dancy, które zawsze są takie same. Na przykład dane o konfiguracji strony to zaoszczędzasz na ilości wykonywania zapytań. Bo po co każdy ma pytac o to samo? A jak Ci się dane zmienily to kasujesz plik. Tak żeby pierwsza osoba która zobaczy strona "wygenerowała go". |
|
|
![]()
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%) ![]() ![]() |
Cache'owanie - to metody sluzace przyspieszaniu dzialania np. programow/aplikacji poprzez zapamietywanie _wynikow_ obliczen. Jest to takze przechowywanie najbardziej uzytwanych danych na nosniku o szybszym dostepie (np. pamiec cache procesora -- duzo szybsza od RAMu, i mimo ze jest jej malo to znacznie przyspiesza wykonywanie programow), itd.
Systemy szablonow: szablon trzeba przeparsowac, sprawdzic jego poprawnosc, wstawic do niego dane, itd. To zajmuje duzo (wartosc wzgledna) czasu. Jesli dana stronea bedzie wyswietlana wielorotnie to zamiast wykonywac te obliczenia za kazdym razem zapamietujemy np. tylko wyenerowany html i wyswietlamy go. Ten post edytował dr_bonzo 18.12.2005, 22:36:48 -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 165 Pomógł: 6 Dołączył: 17.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem ze zwiazane to jest z szybszym wyczytywaniem danym z plikow niz z bazy?
|
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Diablos @ 2005-12-18 22:55:19) Rozumiem ze zwiazane to jest z szybszym wyczytywaniem danym z plikow niz z bazy? Też. Ale przede wszystkim ze zmniejszeniem ilości wykonywanych operacji. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 3.01.2004 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
Tak samo db jak i plikow to sie tyczy
![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Prosty przykład
pozdrawiam |
|
|
![]()
Post
#10
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ociu, ten kod jest zły. Najpierw pomyśl co wklejasz, jeśli newbie się pyta.
1. Odwołujesz się do statycznych metod, które nie są statyczne. 2. W metodzie prefix, masz self::$prefix, a powinno być $this->flag. 3. $this->flag bez static. 4. Czemu Baza dziedziczy z Cache? Jak chcesz powinna implementować interfejs Cachable, czy jakiś taki. Pewnie jeszcze czegoś bym się czepił, ale nie mam czasu ;] -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Co do przykładu ( kiedyś dawno napisałem z kumplem takie coś )
Sterownik Bazy danych Jes tam mechanizm cache'owanych zapytań do bazy danych. Jak chcesz to sobie zerknij. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Bela to tylko przykłady pisane z palca. Napewno są błędy, część naukli polega na wyłapywaniu błędów w innych kodach.
pozdrawiam |
|
|
![]()
Post
#13
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ja to odbieram w inny sposób: pokazujesz komuś kod, mówisz że jest fajny i uczysz go tym samym złych rzeczy.
Dla to nie jest nauka, łapanie Twoich błędów. To zwykła rutyna. Za to Ty możesz wyciągnąć lub nie coś z tych wskazówek i pisać lepszy kod. Rada na przyszłość? Nie pisz z palca ;] -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Nie sztuką jest dostać gotowy kod i podziwiać jaki on jest fajny, ale sztuką jest dostać niegotowy kod, zrozumieć filozofie i wyłapać ew. błędy.
A jako, ze są święta: Masz rację |
|
|
![]()
Post
#15
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
To nie było personalnie. Poza tym czasem lepiej dać pseudo-kod bądź kroki algorytmu w punktach. Ok, koniec OT.
-------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 165 Pomógł: 6 Dołączył: 17.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hm, a na jakiej zasadzie cache sprawdza czy dane ktore chce pobrac juz sa zapisane do pliku? Rozumiem, ze przez sprawdzenie czy plik istnieje. Ale gdy dane w bazie ulegaja zmianie skrypt musi rozpoznac przeciez ze ta zmiana nastapila i ze trzeba generowac nowy plik. Wtedy czynnosci jest jeszcze wiecej pobranie z bazy, porownanie, utworzenie pliku, a sprawdzic czy dane w bazie zostaly zmienione przeciez trzeba zawsze.
Tzn. ja to tak rozumiem ![]() |
|
|
![]()
Post
#17
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy, że zmienisz zawartość pliku przy innym zapytaniu niż SELECT. Jednak zauważ, że rzadziej zmieniasz bazę niż pobierasz z niej dane.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 09:41 |