Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 3.10.2003 Skąd: Gdańsk Ostrzeżenie: (0%)
|
przygotowuję bibliotekę php opierającą się na 1 głównej funkcji pełniącej rolę interpretora poleceń (zdecydowały o tym względy funkcjonalne). zastanawiam się jak skonstruować bibliotekę, żeby działała wydajniej
1 możliwość: Kod function funkcja_główna ($polecenie)
{ if ($polecenie = "komenda1") { instrukcja; co wykonać; w przypadku; polecenia "komenda1"; } else if ($polecenie = "komenda2") { instrukcja; co wykonać; w przypadku; polecenia "komenda2"; } else { instrukcja; co wykonać; w przypadku; innego polecenia; } } 2 możliwość: Kod function funkcja_główna ($polecenie)
{ if ($polecenie = "komenda1") { wykonaj funkcję komenda1; } else if ($polecenie = "komenda2") { wykonaj funkcję komenda2; } else { wykonaj funkcję inna_komenda; } } function komenda1 { instrukcja; co wykonać; w przypadku; polecenia "komenda1"; } (i tak dalej) Chodzi o całkiem złożony skrypt manipulujący plikami tekstowymi na serwerze. W który z wymienionych sposobów go wykonać, żeby działał wydajniej? A może nie ma różnicy? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%)
|
Cytat Ogólnie czasy są porównywalne, ale wywołanie funkcji zawsze zabiera więcej czasu niż przetwarzanie tego w miejscu, a switch jest minimalnie wolniejszy od if else.
Cytat W instrukcji switch wartość wyrażenia jest obliczana tylko raz, a następnie jest porównywana z każdym z wyrażeń przy etykiecie case. Natomiast w instrukcji elseif wartość wyrażenia jest obliczana ponownie. Dlatego, jeśli twoje wyrażenie jest bardziej skomplikowane od zwykłego porównania, lub znajduje się w zwartej pętli (tight loop), switch może być szybszy.
kiedys mi to utkwilo we lbie i jakos tak zakodowalem wiec przyznaje - w tym przypadku wolniejszy |
|
|
|
warpech optymalizacja kodu 3.10.2003, 14:53:53
Puciek Skrypt dobry ale ja proponuję takie małe zmiany:
... 3.10.2003, 14:59:08
kubatron a nieobrazcie się o co w tym chodzi?? 3.10.2003, 18:59:49
rzseattle switch
szybsze i wedlug mnie elegantsze 3.10.2003, 21:29:32
adwol Ogólnie czasy są porównywalne, ale wywołanie funkc... 3.10.2003, 22:07:14 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 20:34 |