![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witjacie!
Mam nietypowe pytanie - ile wynosi granica przyzwoitości dla renderowania jednej podstrony która jest nazwijmy to statyczna? Tzn. używa szablonów i pobiera dane z MySQL`a (bez czytników rss i innych bajerów). Pytam ponieważ piszę system szablonów (a właściwie skończyłem) i wygenerowanie podstrony na podstawie pliku .tpl który posiada kilka powiązań z innymi plikami zajmuje ok. 7-10ms. Jestem paranoikiem jeśli chodzi o wydajność i sam system tplek ma swój wewnętrzny cache (coby jednego newsa nie pobierać 2x chcąc mieć go w json oraz w html) ale zastanawiam się czy dodatkowo nie pooptymalizować kodu bardziej. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 1 Dołączył: 13.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
A czy przy testowaniu czasu wykonania wymuszasz na bazie danych, żeby nie cache-owała wyników zapytań?
Dla MySQL używa się:
Ew. przyspieszyć możesz sam proces ładowania plików z dysku (które pewnie i tak są cache-owane, ale kit z tym) poprzez usunięcie komentarzy z plików PHP, ale to raczej ostateczność, choć dla paranoika niekoniecznie (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak oczywiście, że wyłączam cache do testów (IMG:style_emoticons/default/winksmiley.jpg)
Co do usuwania komentarzy to nie ma sensu - i tak na większości serwerów działa eAccelerator. Zastanawiam, się czy ma sens własne cachowanie jeśli skrypt wykryje, że nie używamy sqlite (używam PDO). Tzn obecnie mam to wykonane tak, że w ramach jednej instancji klasy jest robiony w pamięci cache i przed każdym zapytaniem sprawdzane jest czy aby dana strona/news nie był już "wybierany" z bazy, jeśli tak to jest wypluwany z cache. Teraz rodzi się pytanie - czy warto dodatkowo cachować to na dysku powiedzmy w folderze /cache/raw/ ze strukturą powiedzmy /cache/raw/news/id.dat. Wtedy jednak przy zmianie newsa trzeba sprawdzać czy istnieje jako cache i go ew. usuwać. Nie wiem czy to ma sens bo przecież jakoś trzeba kodować dane do pliku a później je parsować (najprościej chyba użyć do konwersji tablica>plik plik>tablica json_encode/decode) co zajmuje chwilę. Myślałem nad cachowaniem całych podstron z wygenerowanym już htmlem jednakże wpadł mi nieprzewidziany problem - strona każdego zalogowanego użytkownika wygląda inaczej. Mogę oczywiście przyjąć założenie, że buforuje tylko strony dla niezalogowanych jednakże to trochę mijanie się z problemem. Znalazłem też ciekawe porównanie: (IMG:http://wstaw.org/m/2010/10/18/Zrzut_ekranu_2010-10-18_godz._23.58.11.png) Czyli sprawdzenie się starej zasady - prosty i ładny wyglądający kod ma mało wspólnego z wydajnością. (Więcej na http://phpbench.com/) Ten post edytował kiler129 18.10.2010, 23:00:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 10:11 |