szybkość wyświetlania strony www

0

Witam, jak zwiększyć szybkość wyświetlania strony, zoptymalizować/przyspieszyć operacje do mysql na co zwrócić uwagę.
Chodzi o stronkę Klik

Stronka podobna ładuje się dużo szybciej, przyciski następna strona przenoszą szybciej do kolejnych stron, jak uzyskać taki efekt:
Szybsza strona

2

Zbyt mało informacji żeby udzielić szybkiej, sensownej rady.

Optymalizacja wydajności to całe rzemiosło (sztuka?). Powolność witryny może mieć różne przyczyny. W zasadzie jedyne słuszne podejście do optymalizacji zaczyna się od profilowania. Uruchamiasz profiler (jak nie wiesz co to jest, to pogooglaj), odszukujesz wąskie gardła, tj. fragmenty kodu, które wykonują się w sumie najdłużej, no i optymalizujesz właśnie je. Czasami trzeba pobawić się indeksami w bazie danych, czasami zmienić wysyłane do bazy polecenie (ale, ponownie, reguł jest zbyt wiele by je opisywać w poście), a niekiedy problemem są algorytmy. Nie chodzi tu o jakieś wielkie, skomplikowane algorytmy, tylko po prostu czasem ktoś napisze funkcję, która robi jakąś nawet pierdołę cholernie nieoptymalnie, a podczas profilowania okazuje się, że funkcja jest wywoływana np. tysiące razy podczas budowania odpowiedzi. Wtedy nawet zwykłe operacje na stringach mogą powodować, że aplikacja działa wolno.

Często problemy rozwiązuje keszowanie. Może nie masz go poprawnie zrobionego? To też nie jest sprawa na krótki post.

Bywa, że stronę napisali kiepscy koderzy i oni nie mają pojęcia o optymalizacji, nie mają pojęcia gdzie nawet szukać jakiejś wiedzy o tym, a kod napisany jest tak słabo -- nieczytelnie, nieortogonalnie, łamiąc DRY -- że bardzo ciężko cokolwiek w nim zmienić i poprawić. W takim wypadku właściciel witryny powinien pluć sobie w brodę, że nie zatrudnił lepszych koderów, tylko wziął tych tańszych... właśnie przyszło za nich zapłacić drugą transzę ;). Czasami zatrudnia się w takim wypadku konsultanta/specjalistę by pomógł rozwiązać problem, bo tak naprawdę da się go rozwiązać jedynie analizując dogłębnie całą witrynę, włącznie z jej kodem.

My teraz przecież nie widzimy w ogóle co się dzieje po stronie serwera, więc niby jak mielibyśmy Ci pomóc? Jak mielibyśmy sprawdzić, co trzeba tam poprawić? Niestety, reguły nie są aż tak proste jak "zmień print na echo" :D

Wreszcie, powody różnic wydajności pomiędzy dwoma stronami mogą być totalnie inne i nie mieć nawet związku z kodem (!). Po prostu, jedna z witryn może stać na znacznie szybszym (=droższym) serwerze. Są przecież ogromne różnice pomiędzy psującą się chmurką za 150 zł rocznie, a dedykowanym serwerem cokolwiek wysokiej klasy z 16 rdzeniami, 32 GB RAM-u i dyskami 10 000 rpm za tysiące złotych miesięcznie. Innym powodem może być po prostu... różnica w obciążeniu. Może na Twojej stronie masz 50 000 użytkowników, a na tamtej jest 5000. I Twoja chodzi 10x wolniej (zależność nie musi być liniowa). Oczywiście, powinieneś wtedy optymalizować swoją witrynę, ale nie znaczy to, że powinieneś brać przykład z konkurencji -- która wcale nie musi mieć lepszego kodu.

1

A ja ze swojej strony dodam to, że odpowiedziałem w Twoich 3 postach dot. problemów z pisaniem tej strony. Jesteś jeszcze bardzo początkujący, i jeżeli nie zarzucisz projektu, to i tak przepiszesz tą stronę od zera jeszcze co najmniej 3 razy ;) Więc raczej tu nie chodzi o sprzęt (bo odwiedzin raczej za dużo nie masz jakieś 3 dni po starcie) czy inne duperele - tylko właśnie o kod. Z kolei sposób w jaki zadałeś pytanie - zero konkretów - mnie jeszcze bardziej zadziwia. Coś napisałeś, a pytanie niczym u osoby, która myli PHP z BHP ;) Skoro napisałeś już taki serwis, to dlaczego nie prześledzisz krok po kroku kodu, chociażby w najprostszy sposób, mierząc co 20 linijek czas, w jakim wykonał się skrypt? Na pewno szybko znajdziesz to wąskie gardło. Dodam, że przy domyślnych ustawieniach Twojego lokalnego serwera www strona nie powinna wykonywać Ci się dłużej (mówię o kodzie php) niż 10ms. Zmierz ile wykonuje się teraz.

0

Wydaje mi się, że jak pisze dzek69 strona jest źle napisana. Mimo, że mam bardzo małe doświadczenie, to udało mi się poprawić swój kod w C# odwołujący się do bazy MSSQL poprawiając wynik o 35% :) Więc można!

Jak chcesz przyspieszyć stronę może użyj frameworka (Zend, Symfony, Kohana, CI,....) i użyj wtyczek np. do kompresji (gzip) lub innych, które z kompresują skrypty, ale i grafikę.

A tak przy okazji:
No cóż setny klon klona klona.... demotów :) Ktoś jeszcze ogląda te strony?

0

@webmatrix: wtyczka, która kompresuje już przecież skompresowane jpegi, png i gify to chyba żart, sprawdź sam, jaki współczynnik kompresji osiągniesz.
a zatrudnianie do tego całego framework'a zamiast użycia odpowiednich wtyczek do serwera http świadczy o braku kompetencji. podobnie wygląda proponowanie frameworków Zend czy Kohana programiście C#.

1 użytkowników online, w tym zalogowanych: 0, gości: 1