Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wydajność, zuzycie pamięci, itp
Forum PHP.pl > Forum > PHP
batman
Witam.

Szukam materiałów na temat wydajności PHP oraz zużycia pamięci. Szukałem na googlach i sporo tego znalazłem, jednak wolę polegać na osobach, które się na tym znają.

Interesują mnie takie zagadnienia jak różnice w wydajności tworzenia tablic i obiektów, dopuszczalny rozmiar obiektów / tablic, ilość zagnieżdżeń (podtablic / podobiektów), zużycie pamięci do przechowywania danych w postaci string / integer, itd, różnice w przechowywaniu danych w postaci plików XML lub w bazie danych oraz podobne do powyższych tematy.

Mam wyrobione zdanie na temat wydajności, jednak chciałbym je skonfrontować z ludźmi, którzy w tym siedzą.

Z góry dziękuję za pomoc.
dr_bonzo
A nie mozesz sprawdzic tych ograniczen?
batman
Jak już pisałem mam już wyrobione zdanie na ten temat, jednak nie jestem osobą nieomylną i dlatego chciałem zweryfikować swoją wiedzę winksmiley.jpg

Poza tym mam kilka pytań, na które mam nadzieję znaleźć odpowiedź w poleconych artykułach.
domis86
Cytat(batman @ 7.05.2007, 12:49:46 ) *
Interesują mnie takie zagadnienia jak różnice w wydajności tworzenia tablic i obiektów, dopuszczalny rozmiar obiektów / tablic, ilość zagnieżdżeń (podtablic / podobiektów), zużycie pamięci do przechowywania danych w postaci string / integer, itd, różnice w przechowywaniu danych w postaci plików XML lub w bazie danych oraz podobne do powyższych tematy.

Porównywanie czy szybsza lub wydajniejsza jest tablica albo obiekt jest jak porownywanie masła z piwem. Służą do czegoś innego wiec sie ich nie porownuje.

co do wydajnosci, to najlepiej przeprawadzic sobie małe benchmarki (robisz milion razy -np forem- jakąś rzecz i mierzysz czas, pozniej robisz inna tyle samo razy i porownujesz)
Riklaunim
polecam Xdebuga i do teg coś do obciążania serwera np. httperf czy siege.
domis86
Cytat(Riklaunim @ 7.05.2007, 13:56:06 ) *
polecam Xdebuga i do teg coś do obciążania serwera np. httperf czy siege.

po co wyrywać się z armatą na komara?

wystarczy microtime() guitar.gif
batman
Widzę, że się nie zrozumieliśmy:

Cytat
Szukam materiałów na temat wydajności PHP oraz zużycia pamięci


Wiem jak testować wydajność skryptów PHP oraz jak je debugować. Szukam materiałów na ten temat, ponieważ

Cytat
Mam wyrobione zdanie na temat wydajności, jednak chciałbym je skonfrontować z ludźmi, którzy w tym siedzą.
domis86
No to może zadaj tutaj te pytania. Jestem pewien ze na forum.php.pl są ludzie, którzy "w tym siedzą" snitch.gif
batman
Śledząc ostatnio wypowiedzi na tym forum zauważyłem, że 70% odpowiedzi jest nie na temat (nabijacze postów), 20% odpowiedzi jest na temat, jednak z powodu niedoczytania pytania mijają się z problemem, 9% to teksty w stylu: było, poszukaj, zamykam itp. Reszta to to, czego się szuka winksmiley.jpg

Dlatego też wolę poszukać materiałów w innym miejscu i sądziłem, że chociaż jedna osoba będzie miała dobre źródło.
virusek856
Kilka moich spostrzeżeń odnośnie wydajności:
Co do przechowywania informacji najszybsze okzują się zmienne sesyjne, mimo, że bazują również na plikach są kilkusetkrotnie szybsze niż operacje na plikach.
Dalej swego czasu zauważyłem, że skorzystanie z funkcji unset dla dużej tablicy NIE ZWALNIA PAMIĘCI exclamation.gif!.
Najbardziej czasochłonnym elementem jak zawsze jest dostęp do bazy danych.
Po długim okresie szukania znalazłem najszybszy sposób komunikacji z bazą w tym przypadku ms sql, i jest to połączenie z usługą soap napisaną w basicu (pliki dll) i wykonywanie połączenia z bazą właśnie przez tego soap'a. Dodam jeszcze, że ten wbudowany SoapClient w php jest dużo szybszy i wydajniejszy niż popularny nusoap. Połączenie poprzez soap'a wiąże się jeszcze z jedną korzyścią:
Przy liczbie połączeń równej około 50-100, funkcja mssql_connect wywala unable connect, co jest do ominięcia poprzez wykorzystanie soap. Dla zwiększenia wydajności można postawić kilka serwerów soap i wykorzystanie keszowania.
dr_bonzo
Cytat
Interesują mnie takie zagadnienia jak różnice w wydajności tworzenia tablic i obiektów, dopuszczalny rozmiar obiektów / tablic, ilość zagnieżdżeń (podtablic / podobiektów), zużycie pamięci do przechowywania danych w postaci string / integer, itd, [...]


Cytat
Jak już pisałem mam już wyrobione zdanie na ten temat, jednak nie jestem osobą nieomylną i dlatego chciałem zweryfikować swoją wiedzę

Tu nie ma mowy o wyrobieniu zdania, te wielkosci sie mierzy, tworzysz rekurencyjnie tablice w tablicy i czekaz az ci php padnie, albo pamiec sie skonczy itd.
domis86
Cytat(dr_bonzo @ 7.05.2007, 16:07:24 ) *
Tu nie ma mowy o wyrobieniu zdania, te wielkosci sie mierzy, tworzysz rekurencyjnie tablice w tablicy i czekaz az ci php padnie, albo pamiec sie skonczy itd.

No wlasnie, nie mozna miec zdania na ten temat, to nie jest jakieś luźne zagadnienie typu "czy lubisz lody orzechowe?", to trzeba udowodnic.
prond
Sam nigdy nie zwracałem większej uwagi na wydajność (wygoda w tworzeniu aplikacji ma dla mnie dużo wyższy priorytet). Ostatnio jednak znalazłem takie artykuły:

http://phplens.com/lens/php-book/optimizin...bugging-php.php
http://www.moskalyuk.com/blog/php-optimization-tips/1272

Zastosowanie wymienionych tam trików/zaleceń przyspieszyło trochę działanie mojej aplikacji. Dlatego zakładam, że autorzy tych artykułów wiedzieli co piszą.

Myślę, że warto spróbować bezpośrednio odezwać się do nich.
domis86
Hmm, zapytaj nas biggrin.gif Co ci szkodzi?
batman
Cytat
Tu nie ma mowy o wyrobieniu zdania, te wielkosci sie mierzy, tworzysz rekurencyjnie tablice w tablicy i czekaz az ci php padnie, albo pamiec sie skonczy itd.

Prawda, ale tak jak w życiu, w programowaniu utarły się pewne "przesądy". Na testowanie wszelkich możliwości po prostu nie ma czasu.

Cytat
Hmm, zapytaj nas biggrin.gif Co ci szkodzi?

Nic nie szkodzi. Akurat w chwili obecnej nie mam konkretnego pytania. Szukam tylko jakiegoś przewodnika po silniku PHP. Ile czasu zajmuje tworzenie zmiennej określonego typu. Ile pamięci to zajmuje, itd.
domis86
Hehe, ok smile.gif Ale to są pierdólki.

Oczywiście podstawą optymalizacji przy duzych ilosciach danych pozostaje jak zawsze odpowiedni dobór algorytmu (złożonosc obliczeniowa+pamieciowa) - to uniwersalna prawda w w kazdym jezyku. rolleyes.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.