Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> optymalizacja kodu
warpech
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rzseattle
post
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 20:34