|
Witaj na naszym forum!
Nie jesteś zalogowany. (Logowanie - Rejestracja) |
![]() |
|
Google
|
To jest wiadomość reklamowa. | ||
|
Grupa: Goście
|
|
||
|
|||
|
|||
|
Witam, polecam z pliku:
/includes/fuctions/ChekUser.php Wywalić zapytanie, które aktualizuje ip, onlinetime, useragent Przy każdym kliknięciu. I zamiast tam, wkleić je w login.php i np. w podgląd. Można również w budynki, z mojej statystyki wynika, że podgląd oraz stocznia są najbardziej popularnymi zakładkami, więc tylko tam można zapytanie wkleić. Przy czym user_agent można w ogóle wywalić, lub dać (1 - chyba będzie błąd bez tego). Podsumowując: Jedno zapytanie mniej przy każdym kliknięciu (a przynajmniej przy większości). Jeżeli już będzie, to bez user_agent które było długie i mysql wolniej myślał. Najlepszym rozwiązaniem by było wrzucenie chechuser do crona, i wywoływanie go co 5 sekund np. Ostatnio zmieniano Niedziela 09:53 21.03.2010 przez deusx. Razem zmieniano 1 razy.
|
|||
|
|||
|
|||
|
Administrator
![]() ![]() ![]() Grupa: Administratorzy Posty: 436 Reputacja: Klejnot w koronie Ostrzeżenia: ![]() Rejestracja: Czwartek 20:42 03.07.2008 |
Wywalenie tego na pewno nie pomoże w żaden sposób ;>. Jeżeli masz odpowiednio założone indeksy na bazie to zapytanie powinno się wykonać bardzo szybko. Ponadto usunięcie tego spowoduje, że tak naprawdę nie będziesz wiedział czy user jest online, czy też nie (o ile bedzie siedział cały czas w zakładce, w której nie będzie tego zapytania).
BTW jak ty to chcesz do crona podpiąc? ;> |
||
|
|||
|
|||
|
Normalnie do crontabsa to dać i wywoływać co 5 sekund.
A czy zapytanie się wykonuje szybko czy wolno ? Nawet jeżeli szybko to zawsze jest o jedno mniej, a z podglądu choćby to wywalić zawsze mam 0,05% wydajności więcej, po co mam to trzymać w options, alliance, statystkach ? Tam ludzie krótko siedzą. Ja u siebie to stosuje, i było widać poprawę w działaniu serwera (co prawda zrobiłem również 20 innych rzeczy, jednak każda była tak samo małostkowa) Zresztą, nikt nic nie pisał, to coś napisałem |
|||
|
|||
|
|||
|
Administrator
![]() ![]() ![]() Grupa: Administratorzy Posty: 436 Reputacja: Klejnot w koronie Ostrzeżenia: ![]() Rejestracja: Czwartek 20:42 03.07.2008 |
Heh, ale jak ty chcesz CheckUser w cron'ie wywoływać? Nie rozumiem... CheckUser sprawdza aktualnie zalogowanego gracza. Żeby sprawdzić aktualnie zalogowanego gracza skrypt musi skądś wiedzieć który to gracz. W tym wypadku uzywane są ciasteczke (oryginalnie) lub sesje (o ile komus się chciało przerabiać kod). Usunięcie 'useragent' -> zgadzam się, można usunąć jednak specjalnego wzrostu wydajności nie zaobserwujesz.
Tak by the way -> profilujesz zapytania? Czyli przykładowo -> spróbowałeś w pętli wykonać powiedzmy 10000 razy to zapytanie przed zmianami i po zmianach licząc za pomocą microtime() czas wykonania całości? ;>. Jeżeli nie -> polecam. Możesz się czasami nieźle zdziwić wynikami, jednak generalnie wynik takiego profilowania jest wiarygodny. |
||
|
|||
|
|||
|
Oj się czepiasz, to można zrobić licznik kliknięć, i co dziesiąte kliknięcie będzie include checkuser. Można licznik w sesji zrobić, więc obciążenia nie będzie.
Ostatnio zmieniano Poniedziałek 09:42 22.03.2010 przez deusx. Razem zmieniano 3 razy.
|
|||
|
|||
|
|||
|
Administrator
![]() ![]() ![]() Grupa: Administratorzy Posty: 436 Reputacja: Klejnot w koronie Ostrzeżenia: ![]() Rejestracja: Czwartek 20:42 03.07.2008 |
Się nie czepiam tylko zwracam uwagę ;>. Wiesz, równie dobrze można większość zapytań przerzucić na funkcje SQL i (jeśli się to dobrze wykombinuje) zmniejszyć ilość zapytań do bazy przy każdym odświerzeniu z 25 do np 5 ;>. Można także wyniki niektórych zapytań przechowywać w cache (np xcache, apc, memcache o ile masz odpowiednie rozszerzenia zainstalowane). Takimi zapytaniami są np: zapytanie wyciągające konfig z bazy, zapytanie wyciągające statystyki z bazy, zapytanie odczytujące ilość userów z bazy, zapytanie wyciągające ilość graczy online (możesz np ustalic sobie, żeby siedziało w cache powiedzmy 10sek) itp, itd. Na pewno zyskasz więcej niż gdybyś zmienił zachowanie się CheckUser ;>.
//EDIT: Ajj, zapomniałem o jeszcze jednym ciekawym zagadnieniu -> semafory ;>. Zainteresuj się tym. W php odpowiedzialne za semafory rozszerzenie nzywa się sysvsem. Ostatnio zmieniano Poniedziałek 11:30 22.03.2010 przez hemicalyaction. Razem zmieniano 1 razy.
|
||
|
|||
|
|||
|
Może napiszesz jakiś poradnik na ten temat?
|
|||
|
|||
|
|||
|
Administrator
![]() ![]() ![]() Grupa: Administratorzy Posty: 436 Reputacja: Klejnot w koronie Ostrzeżenia: ![]() Rejestracja: Czwartek 20:42 03.07.2008 |
A i napiszę jak tylko mnie "wena twórcza" dopadnie.
|
||
|
|||
|
|||
|
Czekam z niecierpliwością
|
|||
|
|||
|
Google
|
To jest wiadomość reklamowa. | ||
|
Grupa: Goście
|
|
||
|
|||
![]() |
| Przejdź do: |
  |
| Kontakt | Wersja lekka | Wtorek 03:26 07.09.2010 |
![]() |