![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam pewien pomysł - umieścmy w tym topicu informacje o wyższości jednej funkcji/metody nad inną. Proszę nie offtopować ;-).
Może zaczne: Porównanie: foreach($tablica as $key => $value) i list($key, $value) = each($tablica) Skrypt testowy:
Oraz:
<b>Wyniki:</b> Wszystko testowane: ab -c 60 -n 1000 na Apache 1.3.28@Win2k + php4.3.2 1. foreach(): Time taken for tests: 83.281250 seconds Requests per second: 12.01 [#/sec] (mean) Time per request: 4996.875 [ms] (mean) 2. list() i each(): Time taken for tests: 101.812500 seconds Requests per second: 9.82 [#/sec] (mean) Time per request: 6108.750 [ms] (mean) Czyli przewaga (spora) po stronie foreach :-). Proszę chętnych o zamieszczanie swoich wyników porównujących najczęściej używane przez Was funckje. Może być fajnie :-). P.S. Czekajcie na więcej z mojej strony :-). |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Zawsze bardziej lubilem foreach'a niz each i tyko z tego 1 korzystalem. Czulem, ze cos w tym musi byc
![]() Widze, ze ab.exe Ci sie bardzo spodobal ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Sorry za mały offtopic ale musiałem
![]() ![]() -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
- preg_* kontra ereg* -> pregi szybsze - "ala" kontra 'ala' -> "ala" szybsze (ale nie "ala ma $kota") czyli: (bardziej po polsku ![]() Cytat najwolniej: $test = "ala ma $kota "; dobrze: $test = 'ala ma ' . $kota ; minimalnie szybciej: $test = "ala ma ". $kota ; (minimalna różnica - na granicy błędu) - obiekty kontra funkcje -> funkcje .. http://phplens.com/lens/php-book/optimizin...bugging-php.php misie drogie ... ![]() Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A na dokładke artykul Leszka Krupinskiego
-> http://leon.w-wa.pl/artykul.html tlumaczenie orginalnych dokumentow znalezionych w babilonie pod redakcja kurtza i phestusa ;)p -------------------- .. make web your home ..
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mówi się dużo na temat tego, że file() jest wolniejszy od fgets(). Dodam również jedną inną funkcję - file_get_contents. Sprawdźmy :-).
Wszystko testowane: ab -c 60 -n 1000 Plik ma format: Kod c|x|a [nowa linia] c|x|a [nowa linia] ... Skrypt 1 (file):
<b>Wyniki: </b> Time taken for tests: 60.171875 seconds Requests per second: 16.62 [#/sec] (mean) Time per request: 3610.313 [ms] (mean) Time per request: 60.172 [ms] (mean, across all concurrent requests) Skrypt 2 (fgets):
Tryb rb - odczyt + binarny (funkcja file() jest binary safe). <b>Wyniki: </b> Time taken for tests: 69.531250 seconds Requests per second: 14.38 [#/sec] (mean) Time per request: 4171.875 [ms] (mean) Time per request: 69.531 [ms] (mean, across all concurrent requests) A więc <b> WOLNIEJ! </b> ![]() Czas na file_get_contents. Będziemy dzielić wynik na linijki, żeby było sprawiedliwie. Skrypt 3 (file_get_content):
<b>Wyniki:</b> Time taken for tests: 61.656250 seconds Requests per second: 16.22 [#/sec] (mean) Time per request: 3699.375 [ms] (mean) Time per request: 61.656 [ms] (mean, across all concurrent requests) Minimalnie wolniejszy od file(), ale zawsze ;-). A więc w tej konkurencji wygrał file()! Oczywiście jeśli chodzi nam o dostęp do każdej liniki z osobna. Następnym razem sprawdzimy jak się te funkcje sprawdzają przy odczycie całych plików + pakowania ich do jednej zmiennej (coś czuje że file_get_contents wygra ;-)). |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zawsze bardziej lubilem foreach'a niz each i tyko z tego 1 korzystalem. Czulem, ze cos w tym musi byc
![]() Widze, ze ab.exe Ci sie bardzo spodobal ![]() Tak, szukałem go od dłuższego czasu :-). Cytat Sorry za mały offtopic ale musiałem
![]() ![]() Ty mi tu nie offtopuj tylko napisz coś ciekawego - porównaj jakieś funkcje. Może być więcej niż dwie. 8) Dla zainteresowanych: Szukajcie programu ab.exe jeśli go nie macie (ja nie miałem w apache1.3.28 na win2k) - link jest na forum o apache, temat Apache Benchmark |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Aby nie zawalac forum php przyklejonymi topicami wrzucilem ten temat do php Pro
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Aby nie zawalac forum php przyklejonymi topicami wrzucilem ten temat do php Pro To swietnie :-). A ponieważ dzisiaj wróciłem z weekendu - spodziewajcie sie na dniach jakis nowosci w topicu :-). |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Kurtz: misiu drogi, a mozesz wyjasnic ta zagwozdke z przewaga "ala" nad 'ala'? Bo dla mnie jest to calkowicie nie logiczne... "" powinien przeszukiwac zawartosc na okolicznosc roznych pierdol PHPowych, a '' nigdy tego nie robi. Jakim wiec sposobem "" moze byc szybsze?!? (nie testowalem - mam maszyne w rozpdzie lekkim teraz :/)
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
zobacz testy - ja też byłem zdziwiony. (Ale sądzę, że błąd jest na granicy błędu, więc przy zwykłym stringu, nie zawierajacym zmiennych - nie ma to znaczenia. Natomiast przy wstawianiu zmiennych __należy__ stosować zapis "test" . $var . "test2"
ps. juz to dokładnie omawialiśmy (stąd te testy), tak więc te ostatnie posty pójdą do usunięcia. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
ostatnio trafiłem na takie porównanie: ( http://php.weblogs.com )
Cytat Twisting by the PHPool
Recently I posted a link to Twisted, a python library for developing socket servers. This generated a storm of interest as to whether php is suitable for developing similar custom networking applications. You should read the commentary in the above link for some interesting remarks by BDKR. So i benchmarked Nanoweb, a webserver written in php, against Apache. Test was repeatedly requesting a 4K HTML file (adodb-session.htm), using M'soft's WAST set at 10 concurrent threads. All software running on a 2.6 Ghz Win XP machine. php-CLI 4.3.3 was used to run Nanoweb. Requests/Sec Nanoweb 176 Apache 1.3.28 300 These figures suggest that a php networking app (Nanoweb) running on brand-new 2003 hardware (3 Ghz PC) will be faster than a program written in C (Apache) on good year 2000 hardware (1Ghz PC). Now if someone had told me in 2000 that in 3 years I would be able to run a web server written in php, and that it would run faster than the Apache of the year 2000, I wouldn't have believed the person. I think this sort of performance is a fantastic achievement for php and its developers. PS: For those of you who read the Twisted docs, you will see that it does not use threads, but callbacks. It should be possible to do something similar in php too. New: If you click on Discuss, you will see that Kemar has posted some benchmarks on Linux, and the numbers are quite different from Windows XP (9 Oct 2003) Nieco zaskakujące, nieprawdaż? Ale za to jak pozytywnie... -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 24.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo ciekawe.... Tylko jak to nanoweb napisano bo to mnie najbardziej interesuje.... Hmm a to dopiero zagadka...
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 24.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
No no no, sciagnalem z ciekawosci z nanoweb.si.kz najnowsza wersje i zainstalowalem ja. Przyznam ze rzeczywiscie zaskoczyla mnie wielkosc pakietu (250 kb) no a sam opis:
Cytat Nanoweb is an HTTP server written in php, designed to be small, secure, and extensible. tez jest calkiem interesujacy. Biore sie za testy ;>
It is distributed under the terms of the GNU General Public License. Nanoweb's main features are : - HTTP/1.1 compliance - Powerful and easy configuration - Modular architecture - FastCGI, CGI and Server side includes support - Name and port based virtual hosts - Access control lists - htpasswd, MySQL, PostgreSQL and LDAP authentication support - Themes for server generated content - Apache compatible log format, MySQL logging - Directory browsing - inetd support and SSL via external helpers - Denial of Service protection - Proxy Server extension - Filters and gzip support - RBL support (mail-abuse.org) - Extension Protocols (request methods) support - ... and a lot more |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 17.05.2003 Skąd: Nysa Ostrzeżenie: (10%) ![]() ![]() |
w sprawie tych stringow, to sprawa jest oczywista:
"bla bla bla bla $zmienna" musi być wolniejsze od 'bla bla bla'.$zmienna ponieważ w pierwszy mprzypadku interpreter sprawdza cały ciąg i w razei potrzeby podstawie odp. wartości w miejsca zmiennych, a w drugim przypadku interpreter sprawdza doiero od momentu wystapienia pierwszego cudzyslowu. interpreter po prostu nie sprawdza apostrofów - wypluwa ich zawartość na ekran tak jak to programista stworzył :wink: p.s po co Wam do mierzenia czasu wykonywnia sie poszczegolnch funkcji czy blokow jakies pluginy do apache'a ? a mktime() juz nie starcza ? :wink: |
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Pozwole sobie odswiezyc troche topic
![]() Znalazlem ciekawy benchmark najzwyklejszej czynnosci jaka jest stosowanie petli... Az zdziwilem sie, ze moze byc tyle tego sposobow. Zapraszam do obejrzenia wyników: http://www.phpinsider.com/benchmarks_phemp...l_benchmark.php Najpierw zobaczcie sobie zrodla (jest tam odnosnik do nich), gdzy bez tego nie wiadomo specjalnie o co chodzi. -------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:02 |