Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] co lepsze - warunkowanie czy wyłączanie warningow?
Forum PHP.pl > Forum > Przedszkole
Volume
Pewnie prosta sprawa, ale nie mam pewnosci co jest ostatecznie lepsze (efektywniejsze - lub po prostu prawidlowe) do warningow php - czy wyłączać raportowanie @, czy tworzyć warunek? Łatwiej i szybciej po prostu wyłączyć małpą @ - ale czy to np. nie spowalnia skryptu? Czy tak mozna praktykowac?
Necsord
Stanowczo powinieneś warunkować. Tłumienie błędów to ostateczność. Błędy powinno się naprawić, a nie przykryć kocem by nie było widać. Z tego co pamiętam to ktoś zrobił tutaj kiedyś test, które rozwiązanie jest wydajniejsze i wyszło, że warunek z uwagi na to, że błąd i tak jest wywoływany ( może mnie pamięc zawodzić w tym przypadku ), a co do samego tłumienia błędów to tylko przeszkadza w debugowaniu.
crocodillo
Odnośnie prędkości:

Mamy taką tablicę:
  1. $arr=array();
  2.  
  3. for ($a=0;$a<1000;$a+=2) $arr[$a]=$a;


I teraz następujące przypadki:

1. Czas wykonywania ok 0,9 sek.
  1. for ($a=0;$a<1000;$a++)
  2. for ($b=0;$b<1000;$b++) {
  3. if (isset($arr[$a]) && isset($arr[$b])) $x=$arr[$a]+$arr[$b];
  4. }


2. Czas wykonywania ok 3,25 sek. (ten sam przypadek ale z wyłączonym raportowaniem błędów i bez małpki wykonuje się w ok 2,3 sek.)
  1. for ($a=0;$a<1000;$a++)
  2. for ($b=0;$b<1000;$b++) {
  3. @$x=$arr[$a]+$arr[$b];
  4. }


3. Czas wykonywania ok 0,73 sek.
  1. for ($a=0;$a<1000;$a++)
  2. for ($b=0;$b<1000;$b++) {
  3. $x=$a+$b;
  4. }


4. Czas wykonywania ok 1,48 sek.
  1. for ($a=0;$a<1000;$a++)
  2. for ($b=0;$b<1000;$b++) {
  3. @$x=$a+$b;
  4. }


Co prawda wyniki są uzyskane na dosyć słabym procesorze, ale chodziło mi tylko o pokazanie różnicy.

Jeszcze tylko dodam, że przy zapełnieniu całej tabeli czas wykonywania tych pętli to ok 0,95 sek. bez sprawdzania. Ze sprawdzaniem (isset()) 1,25 sek.
nospor
Swego czasu trochę się rozpisałem odnośnie tego problemu
http://nospor.pl/notice-wyswietlac-czy-nie.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.