Dominik Mikiewicz

Dominik Mikiewicz maps made easy,
www.cartomatic.pl ||
cartoninjas.net

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Jak w tytule - czego lepiej użyć kilka x if czy switch?
Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

switch zazwyczaj czytelniejszy
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

zazwyczaj uzywam if, z tej przyczyny ze rzadko naprawde mam sytuacje kiedy tylko 1 warunek musi byc spelniony ;-)

natomiast switch jest czytelniejszy...
Dominik Mikiewicz

Dominik Mikiewicz maps made easy,
www.cartomatic.pl ||
cartoninjas.net

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Dzięki :-)
Edyta Ratajczyk

Edyta Ratajczyk
programista/bazodano
wiec/analityk
biznesowy IT

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Ja switch stosuję głównie dla wyboru (jednej z wielu opcji) - czyli jak to przedpiśca podał - jeden warunek.
Napewno jest wydajniejszy niż zamieszczanie kilkunastu if'ów (chyba, że if-else - tu nie wiem, co bardziej wydajne, ale if-else dla kilku(nastu) opcji staje się mało czytelne.
Pozdrawiam.
Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

a które wydajniejsze, to już chyba zależy od języka i kompilatora/interpretera;)

w php: http://rob.sun3.org/php-code/switch-vs-if/
w pierwszym komentarzu masz też wyjaśnione, dlaczego switch może być szybszy.Michał Sznurawa edytował(a) ten post dnia 09.10.08 o godzinie 11:40

konto usunięte

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

if jest szybszy pod warunkiem ze jest to if-else-if a nie same if'y.
Im wyzej w if'ie bedzie postawiony najbardziej prawdopodobna odp. tym szybsze bedzie sprawdzanie.
Najlepiej wykonaj pare testow i sam wybierz.

switch-case (z defaultem) jest tylko nieco wolniejsze od if-else-if
Tobiasz M.

Tobiasz M. Project Manager,
Programista,
Redaktor Naczelny

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Według mnie zależy od sytuacji i wymagań w danym problemie.
Uważam, że jeżeli mamy wpisać parę razy if-elseif-elseif to lepiej zastosować w tym momencie switcha. A w innych przypadkach wystarczy if.

konto usunięte

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

http://www.php.lt/benchmark/phpbench.php
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

uwazam ze w dobie kiedy wiekszosc aplikacji webowych w php korzysta prz y kazdym requescie z polaczenia do bazy danych to takie dywagacje sa smieszne troche.

koszt wykonania takiego polaczenia jest tak duzy ze zajmie np. polowe czasu wykonania calego requesta. takze w ogole o czym tu polemizowac ? ;-)
Michał Michalewski

Michał Michalewski Właściciel,
freelancer

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Marcin Lulek:
uwazam ze w dobie kiedy wiekszosc aplikacji webowych w php korzysta prz y kazdym requescie z polaczenia do bazy danych to takie dywagacje sa smieszne troche.

koszt wykonania takiego polaczenia jest tak duzy ze zajmie np. polowe czasu wykonania calego requesta. takze w ogole o czym tu polemizowac ? ;-)

Hmm to wychodząc z takiego założenia można powiedzieć, że optymalizacja kodu w php nie jest potrzebna bo i tak musisz połączyć się z bazą danych.

Przy większych ilościach userów te pare ms może troche wzrosnąć. Według mnie należy optymalizować kod gdzie się da, a jak się nie da to pewnie się da tylko jeszcze o tym nie wiemy.

Co do tematu to IMO używanie swicha dla warunku [spełniony|nie spełniony] nie ma sensu takie polowanie na muche z pomocą armaty.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Dominik Mikiewicz:
Jak w tytule - czego lepiej użyć kilka x if czy switch?

Kwestia logiki aplikacji.
Jezeli np. mialbys miec kilka kolejnych ifow z warunkiem dotyczacym tej samej zmiennej (klasyczny przyklad: jezeli x jest rowne 1 to zrob cos tam, jezeli x jest rowne 2 to cos innego itd.) to switch sie tu sam narzuca.
Ale jezeli logika jest typu: jezeli x jest rowne 1 to zrob cos tam, a w przeciwnym razie jezeli y jest rowne 5 to zrob cos tam, a jeszcze w przeciwnym razie jezeli z==2*x+y to zrob cos trzeciego, to oczywiste ze if-elseif-elseif...
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Michał Michalewski:

Hmm to wychodząc z takiego założenia można powiedzieć, że optymalizacja kodu w php nie jest potrzebna bo i tak musisz połączyć się z bazą danych.

Nie, po prostu twierdze ze przedwczesna optymalizacja to zlo najgorsze z mozliwych ;-) i wynalazek szatana ;-)

konto usunięte

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Przy narzucie jaki daje PHP nie ma co rozprawiać nad różnicą w wydajności. Wiadomo, że switch będzie w -pewnych- przypadkach ładniejszy i tyle. Przy okazji, czasami szybszy (jeden punkt obliczenia wartości).
Dominik Mikiewicz

Dominik Mikiewicz maps made easy,
www.cartomatic.pl ||
cartoninjas.net

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Mam nadzieję, że nie otworzyłem puszki pandory... W sytuacji, która mnie sprowokowała do pytania testowałem ileś możliwych wartości i już mnie nieco drażniła ilość ifów i trudność szybkiego zorientowania się co jest gdzie. Ostatecznie użyłem switcha. A i chodziło mi o wykonanie w js, ale to w sumie już teraz bez znaczenia.

Dzięki za info :-)
Rafał Płatkowski

Rafał Płatkowski Systemy baz danych,
Oprogramowanie,
Hardware

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Marcin Lulek:
uwazam ze w dobie kiedy wiekszosc aplikacji webowych w php korzysta prz y kazdym requescie z polaczenia do bazy danych to takie dywagacje sa smieszne troche.

koszt wykonania takiego polaczenia jest tak duzy ze zajmie np. polowe czasu wykonania calego requesta. takze w ogole o czym tu polemizowac ? ;-)

Podam ci prosty przyklad pobierasz tresc z bazy wartosci 1MB i dla kazdego znaku wykonujesz operacje if lub switch i w zaleznosci od wyniku dokonujesz obliczenia po czym zapisujesz w pozycje tego znaku inny znak. Jak myslisz co zajmie dluzej pobranie tego 1MB z bazy czy wykonanie operacji obliczeniowej. Optymalizowac warto wszedzie gdzie sie da bo chociaz na oko cos wyglada ze nigdy nie zajmie duzo czasu w pewnych sytuacjach moze spowodowac ze strona bedzie sie otwierac 30 i tylko dlatego ze w czasie testowania zignorowalo sie pewna sytuacje. Sam mialem taki przypadek gdy ktos zrobil losowanie z tablicy bez eliminacji i okazalo sie ze sie losowalo kilkanascie sekund a w czasie testowania zawsze bylo ok :]
Pozdrawiam
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Rafale optymalizowac nlezy z glowa, tak z ciekawosci zapytam co to za aplikacja co pobiera 1mb znakow z bazy i dla kazdego z nich wykonuje aplikacje ??

Tak miedzy nami wykorzystanie do tego php wydaje mi sie glupota... ale co tam.

Pozatym to ze ktos zrobil glupie losowanie jakos ni jak mi sie ma do dyskusji switch vs if, twoje zastosowanie jest nietypowe i niszowe.Marcin Lulek edytował(a) ten post dnia 14.10.08 o godzinie 19:41

konto usunięte

Temat: if vs switch - co wydajniejsze / rozsądniejsze?

Wydajność takich pierdół zazwyczaj nie ma znaczenia.

Skup się na czytelności i poprawności aplikacji, potem na ogólnej wydajności algorytmów (notacja O, a nie żadne mikrooptymalizacje). Dopiero jak profiler wskaże ci, że jakiś switch albo if zajmuje lwią część czasu wykonywania kodu, wtedy sprawdź alternatywę.



Wyślij zaproszenie do