|
PHP5 Script "Állj" előtt kilépő
A közelmúltban felújított a rendszer PHP 4.4.2 PHP 5.2.1 és egy az én parancsfájlokat kezdődött nagyon furcsán viselkedik. Megpróbáltam a Google, hanem a vak eddig.
Alapvetően mi a forgatókönyvet nem is válassza ki a nagy mennyiségű adatot egy mysql (4.1.21) adatbázisban, némi manipuláció, a telkek egy grafikont (a jpgraph 2,2). Én távolítani a kódot, és jpgraph vagyok még, hogy az a probléma. Mi történik a script "lefagy" egy idő után a végrehajtó az utolsó parancs php előtt ténylegesen kilépne. Ez alatt az idő alatt a folyamat egy nagy mennyiségű CPU idő (egész egyetlen feldolgozó többnyire), de ha rcsos folyamat lesz, amíg nincs teljesítmény végül exits (ha látod stdin / out / err zárt stb.)
Miután üzembe különböző debug nyilatkozatok azt tapasztaltam, hogy ha kommentálta a következő sort a script nem lefagy, mielőtt kilépne.
$ datax \u003d $ newdatax;
Egy szép ártalmatlan sor. Ekkor $ datax egy nagy tömb (sok ezer értékek hosszú), és $ newdatax egy tömb az elemzés eredményeit az eredeti $ datax valamilyen módon (többnyire esetben vesz minden n-edik bejegyzést $ datax). Ezen a ponton kívánom dobja el az eredeti $ datax és helyébe az új $ newdatax és én szeretném, hogy tegyen többet maniplulation később.
Ha a $ datax mintegy 10000 sort, vagy ha van egy figyelemre lefagy, amikor a forgatókönyvet kijárat, a 50000 sort a Hang meghaladja a 20 másodpercet. PHP 4 alatt nem volt probléma ezzel a kóddal amikor több mint 200.000 sorok a tömbben.
Még ha csak változás, hogy a vonal
$ datax \u003d array ();
Én hasonló (de sokkal kisebb) "Hang", mielőtt a forgatókönyvet, és a kijárat $ array datax kell, meglehetősen nagy, mielőtt lesz észrevehető.
A rendszer fut a Solaris 9 egy v480 4 processzorokat és a 16 GB RAM. Én már próbáltam és anélkül Zend optimiser (v3.2.8) nem észrevehető különbség.
Any help appreciated.
|