Joachim Peters
24.08.2008, 09:55:21
Witam,
Chciałbym wiedzieć ile można maks. użyć pętli podczas jednego wykonywania skryptu i po jakiej ich ilości skrypt się znacznie spowolni.
Chodzi o pętle foreach.
Pozdrawiam
wookieb
24.08.2008, 09:56:52
Zależy od maszyny na której działa i ustawień php.ini (ilość pamieći na skrypt, max czas wykonywania skryptu)
Joachim Peters
24.08.2008, 10:04:14
Nie da się stwierdzić na oko po ilu się skrypt "wywali"? Jeśli chodzi o ustawienia php.ini to przyjmijmy standardowe.
luck
24.08.2008, 10:05:13
Zależy również (jeśli nie przede wszystkim) od tego, co robisz w danym przebiegu pętli. Co innego jeśli np. po prostu zwiększasz o 1 jakiś licznik, a co innego, gdy pobierasz jakieś dane przez CURL lub SOAP i ładujesz je do tablicy. Wiadomo, że w drugim przypadku zasoby zostaną wyczerpane szybciej, a każda iteracja będzie trwała dłużej.
wookieb
24.08.2008, 10:05:56
Nie. Możesz sobie sam testowac. Pamietaj ze to bardzo roznie bywa z czasem wykonywania skryptów.
Joachim Peters
24.08.2008, 10:20:30
Powiedzcie mi jeszcze tylko czy przy budowie drzewek stosuje się rekurencje z użyciem pętli? Ta pętla w takim przypadku jest wczytywana tyle razy, jakie jest duże zagłębienie?
wookieb
24.08.2008, 10:21:52
Można pętli while ale rekurencja też nie jest zła. Wszystko zależy od toku myślenia programisty. Ja wole stosować rekurencje w takim przypadku.
Joachim Peters
24.08.2008, 10:25:15
Nadałeś jakieś ograniczenie co do ilości zagłębienia? Co w przypadku kiedy poziom zagłębienie będzie wynosić 500?
luck
24.08.2008, 10:30:35
Szczerze to mówimy trochę o niczym... Sprawdzałeś jak długo wykonuje się pętla powiedzmy dla 5 poziomów zagłębienia? Będziesz wtedy mniej więcej wiedział czego możesz oczekiwać, gdy liczba zagłębień wzrośnie np. 100 razy.
wookieb
24.08.2008, 10:30:51
Tak. Daje limit jako dodatkowy parametr, Zreszta... Masz coś co ma az 500 zagłębien? praktycznie zdarza sie to tak samo rzadko jak trafienie w lotku 6...
.radex
24.08.2008, 19:56:03
napisanie funkcji rekurencyjnej jest bajecznie proste, ale mniej wydajne. Przy naprawdę dużej funkcji rekurencyjnej może nieźle zamulić pamięć (stos).
http://zyxist.com/pokaz.php/pozbadz_sie_rekurencji
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.