![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 30.03.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Czesc.
Strasznie dawno juz nic nie pisalem na tym forum.... Macie jakies doswiadczenia z pamiecia wspoldzielona w php? Uzywaliscie tego do czegos kiedys, moze tylko eksperymentowaliscie? Opiszcie to tutaj. Ja np. znalazlem fajny skrypt, ktory cacheuje strony w pamieci wspoldzielonej - przez to sa super szyko wyswietlane. Jezeli macie jakies inne znaleziska albo tylko teoretyczne pomysly, to podzielcie sie. Pozdrawiam, Olek P.S. Jakby sie komus ten skrypt spodobal, to nie wiem gdzie on jest, ale znalazlem go na googlach po wpisaniu >>"shared memory" php<<. Byl gdzies na poczatku |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 22.10.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Cytat(lolo @ 2005-01-02 20:47:36) Po krotkim googlowaniu dochodze do wniosku, ze jest to dobre rozwiazanie. Pewnie latiwejsze w obsludze nawet niz SM takie typowe. Bo mozna jednego skryptu uzywac do komunikacji, ktory albo bedzie uzywal tmpfs albo normalnego, dyskowego systemu plikow. Problem tylko w tym ze tmpfs dziala juz naprawde wylacznie na linuksie, a funkcje SM zadzialaja tez pod niektorymi windami. Poza tym zeby uzywac tmpfs'a trzeba go najpierw zamontowac, co wymaga exec'a (chyba innej molziwosci nie ma?), a mozna chciec go unikac calkiem... Ponadto montowac moze tylko root (w wiekszosci przypadkow), wiec nie uzyjemy tego na darmowych/uczelnianych serwerach... : ( Jakis czas temu probowalismy tego uzywac w dosyc zlozonej aplikacji wlasnie do cachowania i niestety moje doswiadczenia z shared memory w php sa przykre. Mozliwe, ze teraz costam poprawili ale generalnie w php 4.1 bodajze (to wtedy wlasnie probowalismy) bylo to delikatnie mowiac... popsute (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chodzi o to, ze trzeba jakos tworzyc bloki pamieci wspoldzielonej, rezerwowac miejsce w pamieci - wiec trzeba wiedziec ile <> danych potrzebujemy przechowywac. My tworzylismy kilka/kilkaset blokow - to jest mozliwe - natomiast pozniej usuniecie ich nie za bardzo. Dobrze tego nie pamietam ale byl z tym problem. Do tego aby 2 procesy php nie zapisywaly do tego samego kawalka pamieci trzeba to jakos blokowac... Najlepiej wiec skorzystac z semaforow ktore tez sa dostepne w php ale znowu implementacja ich jest lipna. Jak juz cos wymodzilismy z uzyciem shared memory i semaforow to okazalo sie, ze wszystko szlag trafia przy wiekszym obciazeniu na 2 procesorowej maszynie... (prawdopodobnie chodzi o zle ustawianie/kasowanie semaforow) Dodam tylko jeszcze, ze wszystko to robilem pod linuxem - z winda nie mam doswiadczen. Moze teraz sie cos zmienilo ale nie sadze bo przewaznie szukalem w changelogach od php od tamtego czasu jakiejs wzmianki o poprawkach... Mozliwe, ze jednak cos przeoczylem... Wydaje mi sie, ze do cachowania czasami lepiej uzyc bazy i tabel HEAP - one w koncu tez trzymaja w pamieci swoje dane. W MySQL 4.1 bodajze albo w 5.0 wprowadzili nawet mozliwosc zakladania kluczy w HEAPach wiec powinno to dodatkowo przyspieszyc ich dzialanie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 17:04 |