![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zależy od maszyny na której działa i ustawień php.ini (ilość pamieći na skrypt, max czas wykonywania skryptu)
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie da się stwierdzić na oko po ilu się skrypt "wywali"? Jeśli chodzi o ustawienia php.ini to przyjmijmy standardowe.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 317 Pomógł: 58 Dołączył: 6.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
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.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Nie. Możesz sobie sam testowac. Pamietaj ze to bardzo roznie bywa z czasem wykonywania skryptów.
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
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?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
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.
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nadałeś jakieś ograniczenie co do ilości zagłębienia? Co w przypadku kiedy poziom zagłębienie będzie wynosić 500?
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 317 Pomógł: 58 Dołączył: 6.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
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.
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
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...
Ten post edytował wookieb 24.08.2008, 10:45:33 -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
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 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:11 |