|
PHP5 Guión "Congelar" antes de salir
Recientemente he actualizado un sistema de php 4.4.2 a php 5.2.1, y uno de mis guiones ha empezado a comportarse muy extraño. He intentado encontrar google, pero hasta la fecha en blanco.
Básicamente lo que hace el script es seleccionar una gran cantidad de datos de una mysql (4.1.21) de bases de datos, hacer algunas manipulaciones, las parcelas de un gráfico (utilizando jpgraph 2,2). Quité todos los jpgraph código y todavía estoy recibiendo el problema. Lo que pasa es la secuencia de comandos' cuelga 'durante un período de tiempo después de ejecutar el último comando de php antes de salir. Durante este período de tiempo que el proceso tiene una gran cantidad de tiempo de CPU (procesador de un único conjunto de la mayoría), pero si el proceso de confección no te de salida hasta que finalmente salga (cuando vea stdin / out / err cerrado, etc.)
Después de poner varios estados de depuración en mi opinión, si me comentó la siguiente línea de la secuencia de comandos no se bloquea antes de salir.
datax $ \u003d $ newdatax;
Una línea bastante inocuo. En este punto $ datax es una gran cantidad (varios miles de valores de largo), y $ newdatax un arreglo con los resultados de analizar el original $ datax de alguna manera (sobre todo teniendo un caso de cada enésima entrada de $ datax). En este punto quiero tirar el original $ datax y sustituirlo por el nuevo $ newdatax y yo podría hacer más maniplulation más tarde.
Si datax es de unos $ 10,000 o menos filas hay una notable caída, cuando el script finaliza, a las 50.000 filas es el truco más de 20 segundos. En virtud de PHP 4 no tenía problemas con este código cuando había más de 200.000 registros en la matriz.
Incluso si yo simplemente cambie a la línea que
$ datax \u003d array ();
Me similares (pero mucho más pequeña) 'colgar' la secuencia de comandos antes de las salidas y los $ datax serie debe ser muy grande antes de que sea perceptible.
Sistema está funcionando en Solaris 9 en una v480 con 4 procesadores y 16 GB de memoria RAM. Yo lo he probado con y sin el optimizador Zend (v3.2.8) con ninguna diferencia notable.
Cualquier ayuda apreciada.
|