![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 1.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam dwa pytania związane z szybkością wykonywania. 1. Parę lat temu czytałem gdzieś, że mysqli_fetch_row jest szybsze od mysqli_fetch_array, jednakże teraz nigdzie nie mogę tego znaleźć i dlaczego, a może to były tylko jakieś brednie i mi się utkwiło w pamięci? 2. Jeżeli nawaliłbym sobie np. 100 funkcji w pliku i nie użył ich to ma to wpływ na szybkość ładowania się strony? Czy dopiero gdy użyję danej funkcji to ma ona wpływ na szybkość ładowania strony? Dziękuję z góry za wyjaśnienia, Pozdrawiam! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ilość funkcji ma jedynie wpływ na załadowanie ich do pamięci ergo zarezerwowany rozmiar pamięci.
Co do mysqli_ to bym się tym nie przejmował. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym sie zastanowił nad http://php.net/manual/en/mysqli-result.fetch-object.php. nowe php potrafi być kilkukrotnie szybsze przy pracy nad obiektami nad tablicami.
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@viking wzialem jakis na szybko test z netu
Wyniki dla php7.1 Kod 528440 0.00067687034606934s 6251320 0.0043520927429199s 1327880 0.0014209747314453s Jak widac zarowno czasowo jak pamieciowo tablice sa zdecydowanie lepsze. Na drugim miejscu sa obiekty tworzone z gotowej klasy zas na koncu sa obiektu tworzone dynamicznie. fetch_object() zwraca obiekty tworzone dynamicznie wiec teoretycznie wypadnie najgorzej. Jakies uwagi, komentarze? Chetnie podyskutuje na ten temat bo mnie interesuje ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Panie kochany my tu mówimy o metodach BD a nie typach generycznych w porównaniu do obiektu
![]() Raczej coś w ten deseń ale dla mysqli_ i PDO http://www.spearheadsoftwares.com/tutorial...ql-fetch-object |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Panie rowniez kochany, z twojego arta
Cytat . mysql_fetch_object performance is justified as it returns objects instead of native arrays which will always bring in a better memory usages than any other kinds of output array Czyli mowa o normalnych objects vs arrays. Z artykulu nie wynika nic, ze jakos magicznie inaczej podchodza tutaj do obiektow i tablic. I tak, tez czytalem prace naukowe jak to obiekty sa lepsze pamieciowo od tablic, a tu prosze, zonk. Moze robie zle test? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo widzę teraz link (na twitterze) ale był to test jednego z core doveloperów PHP, jakiś miesiąc temu robiony. Dla prostych obiektów, bez przeliczeń, zużycie pamięci było dla obiektu 4-6 mniejsze niż dla tablicy. W przypadku operacji jest to wynik jak dla tablic plus lekko narzut na alokację pamięci dla obiektu. Zresztą ostatnio sporo grzebią w VM i widać znaczne poprawy.
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@viking ja tez widzialem tego typu testy, teorie i ladnie opisane dlaczego obiekty sa lepsze od tablic. Dzis jednak chcialem to sprawdzic w praktyce i zonk. Nie wierze ze moja wersja php jest jakos specjalna
![]() Jedyne co sie zgadza w moim tescie z tymi teoriami to fakt,ze dynamiczne obiekty wypadaja o wiele gorzej od tych z gotowych klas -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
https://3v4l.org/NOL3E/perf#output
Po tym widać jak najnowsze wersje php dostają po dupie w wydajności. Przykładowo dla 7.0.14 Kod 4288384<br />0.0068209171295166s<br />6251264<br />0.0039088726043701s<br />1327824<br />0.0019130706787109s<br />
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 1.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
Czyli z tego co rozumiem, nie ma określonych reguł i znaczenie mają wersje PHP i (być może) moc maszyny na której znajduje się serwer WWW.
Czy może ja coś źle zrozumiałem z tego wszystkiego? Ponieważ jak tak analizuję, u jednej osoby szybciej działa metoda a, u drugiej metoda b, a to jedna osoba wypowiada się, że PHP7 dostaje po dupie od PHP5... Ogółem rzecz biorąc nie byłem dotychczas pozytywnie przekonany do PHP7 i jak na razie chyba nadal zostanę przy 5-tce. Co do testów - nie powiem, całkiem ciekawe. Szkoda jednak, że sam nie mogę ich sprawdzić dokładnie na własnej skórze, ponieważ mój hosting potrafi za 1 razem załadować coś przykładowo w 50ms, raz w 200ms a raz w 500ms - sam chciałem parę testów przeprowadzić no ale z takim hostingiem który posiadam niestety średnio jest to możliwe. Ale dziękuję za dobrą konwersację, z pewnością nie raz jeszcze zajrzę do tego wątku ![]() Pozdrawiam. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat a to jedna osoba wypowiada się, że PHP7 dostaje po dupie od PHP5... Osoba, ktora to ci powiedziala bredzi. php7 w porownaniu do php5 to torpeda. Byc moze troche zwalnia z kolejnymi wydaniami php7 ale nadal jest zdecydowanie szybsze i lepsze od php5. Zostawanie teraz z php5 to cofanie sie.
Ogółem rzecz biorąc nie byłem dotychczas pozytywnie przekonany do PHP7 i jak na razie chyba nadal zostanę przy 5-tce. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 1.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
Osoba, ktora to ci powiedziala bredzi. php7 w porownaniu do php5 to torpeda. Byc moze troche zwalnia z kolejnymi wydaniami php7 ale nadal jest zdecydowanie szybsze i lepsze od php5. Zostawanie teraz z php5 to cofanie sie. A co z przykładem który podał pan viking? https://3v4l.org/NOL3E/perf#output Wyraźnie PHP5 szybciej się wykonuje w tym przykładzie niż PHP7. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zdecydowanie nie warto zostawać przy 5, tym bardziej że z końcem przyszłego roku kończy definitywnie swój żywot i zostaje wsparcie tylko dla 7.
Ww. test u mnie wygląda tak: Kod → php test.php => php 7 0.062088012695312 → dco exec --user application web php test.php => php 5.6 0.074342012405396 dla kodu:
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat A co z przykładem który podał pan viking? Nie mam bladego pojecia jak dziala stronka, na ktorej testowal to viking, ale dziala zle ![]() specjalnie dla ciebie odpalilem moj test na php5. Oba php chodza na tej samej maszynie z takim samym obciazeniem. Oto czasy dla php5 Kod 5891656 0.011223077774048s 10234536 0.022026062011719s 3255624 0.01256799697876s Jak widac golym okiem wyniki sa totalnie gorsze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Co ja mówiłem to że ostatnie wydania PHP 7.1 są skopane i zdecydowanie szybciej ten kod wykonuje się na stabilnych 7.0. Znudziło mi się trochę śledzenie grupy PHP internals ale dopoki to robiłem nawet raporty z buiklów to potwierdzały. W PHP 7.0 przepsano od nowa algorytm odpowiedzialny za obsługę tablic, dlatego w porównaniu do v5 są kilkukrotnie szybsze. Kod nospora można wrzucić do jakiegokolwiek sandboxa online i sobie porównać.
-------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Co ja mówiłem to że ostatnie wydania PHP 7.1 są skopane i zdecydowanie szybciej ten kod wykonuje się na stabilnych 7.0. Wg. testu co pokazales wynika, ze i php7.0 dziala wolniej od php5. Dlatego tez srednio ufam stronce, na ktorej to testowales. Ot i tyle ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Strona uruchamia tylko kod na różnych wersjach parsera i podaje wyniki. To pokazuje tylko że nie ma się za bardzo co przejmować wydajnością bo każda wersja PHP się różni - w jednej coś zepsuto i nagle jest wolniej niż to było wcześniej. Z drugiej strony ewolucja oprogramowania, choćby na przykładzie systemów operacyjnych pokazuje, że to wcale nie jest takie głupie. Niby jest coraz szybszy sprzęt - n-rdzeniowe i wątkowe CPU, dyski NVMe itp, a ze względu na coraz więcej funkcji wcale to nie działa szybciej.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.07.2025 - 06:28 |