Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] optymalizacja kodu, '!' kontra 'false', zadziwiający wynik działań optymalizacyjnych
--wNogachSpisz--
post
Post #1





Goście







Witam

Mam pytanie, który kod jest szybszy?

wersja #1:
  1. $var = array();
  2.  
  3. if ( ! is_array($array)) {
  4. echo 'error';
  5. }


wersja #2:
  1. $var = array();
  2.  
  3. if ( false === is_array($array)) {
  4. echo 'error';
  5. }


Gdyby ktoś mnie spytał, bez zastanowienia odpowiedziałbym, że wersja #2, okazuje się że nie koniecznie, na platformie windows otrzymuje wynik dokładnie przeciwny.
Wersja #1 jest SZYBSZA od #2,
Na platformie linux wyniki testu są identyczne.

Wygląda na to, że w niektórych przypadkach "!" może być równie szybkie LUB SZYBSZE od "=== false".
Nie wiem w którą stronę iść chcąc optymalizować kod...

Co o tym myślcie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--wNogachSpisz--
post
Post #2





Goście







Cytat(Noidea @ 4.02.2011, 10:43:32 ) *
Używaj wersji #1, bo jest czytelniejsza. Optymalizacja nie ma tutaj żadnego zastosowania, bo oba kody i tak działają szybko.


Nie.
Będę używał szybszego sposobu.
Wg mnie programowanie polega między innymi nad znalezieniem złotego środka między czytelnością kodu a jego szybkością, jestem gotów poświęcić akurat tą konkretną odrobinę czytelności na rzecz wydajności, przede wszystkim dlatego, że uważam, że 'false ===' nie jest mniej czytelne od '!' a tylko dłuższe w zapisie...

Cytat(Mephistofeles @ 4.02.2011, 15:12:47 ) *
Daj sobie spokój z takim "optymalizowaniem". Optymalizacja to w małej mierze problem samego kodu, optymalizacja polega na stosowaniu jak najszybszych algorytmów, cache'owaniu wyników, unikaniu niepotrzebnych działań.


Nie.
To o czym opowiadasz to optymalizacja na poziomie logiki aplikacji.
Natomiast ja mówie o optymalizacji na poziomie składni kodu.
To osobne dziedziny optymalizacji i prosze Cię drogi uzytkowniku "Mephistofeles" żebyś ich więcej nie mylił i nie mieszał...


Serdecznie prosze o kolejne wypowiedzi, jak to możliwe że "!" jest szybsze od "false ===", czy optymalizator rozpozaje że negacja stoi obok fukcji jądra i nie dokonuje już przyrównania typów danych?
Innej odpowiedzy nie widze..
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: 18.10.2025 - 11:41