ugrás a tartalomhoz

Sok számolást igénylő cron PHP szkript sokszor megáll

Anonymous · 2006. Okt. 26. (Cs), 08.18
Sziasztok, adott egy sok számolást igénylő szkript (mindenféle összesítést végző szkriptecske, amit cron-ból wget-tel hívok meg éjjelente).
Körülbelül 5-10 perc alatt végez. De sajnos nem mindig, nem értem miért, de néha fogja magát a php (apache?) és feldolgozás közben megáll.
Állítok time limit-et, memory limit-et, de úgy tűnik, hogy valami miatt mégis megáll. Nem mindig, de sajnos egyre sűrűbben.
Milyen beállítást kellene adnom (és hol?), hogy a számolás mindenképpen a végére érjen?
Előre is köszönöm az ötleteket is! :)
Gábor
 
1

méricskélj...

TeeCee · 2006. Okt. 26. (Cs), 09.01
Nálam a parancssorból hívott PHP-re a /etc/php4/cli/php.ini beállításai vonatkoznak, míg az apache által kiszolgált az a /etc/php4/apache/php.ini A megfelelőben állítottál időt, ugye?

Egyéb tippek:
1.) Futtasd le egyszer, és irasd ki időnként, hogy mit csinál, akkor tudni fogod, hogy hol időz.
2.) Keresd meg, hogy hol tudsz lényegesen gyorsítani a kódon. (Mindig lehet!)
3.) Használj cache-t, ha lehet.
Amúgy, ha 'rendes' PHP IDE-t használsz, akkor van benne profiling, ami megmondja, hogy futáskor mi mennyi időt igényel, az jó alap lehet, ha nem tudod eldönteni, hogy mi foghatja.

Az, hogy sokat számol, nem kell, hogy azt jelentse, hogy lassú is legyen. Én pl. volt, hogy először inkább mysql-be nyomtam bele egy könyvtár tartalmát, mert annyiféle rendezés és feltétel kellett a listázáshoz és csoportosításhoz, hogy így egyszerűbb volt megoldani és kb. 50 fájl esetén már gyorsabb is volt, mint egy csomó ciklussal leszűrni őket...

Esetleg, ha elküldőd a kódot e-mailben, akkor ránézek.
2

csak egy tipp

Anonymous · 2006. Okt. 26. (Cs), 12.18
Szia!
Van a kodban rekurziv fügvény?
Nálam a php akkor dobta el magát mindenféle hibajelzés nélkül, amikor rekurziv függvényt használtam és az túl sokszor hivta magát meg, ha jól tudom, ez PHP bug és a 'túl sok' sem állandó érték volt. A megoldás erre az volt, hogy kerültem a rekurziv hivasokat, ill. ha kellett, akkor csak bizonyos mélységig ment csak.

K.