2009-03-13 8 views
6

Estoy recibiendo una extraña 5 a 7 segundos de pausa en la ejecución de scripts PHP desde la línea de comandos de cliente PHP (PHP 5.2 en Windows).Strange 5 segundos de pausa con la interfaz de línea de comandos PHP (relacionado a MySQL extensión/mysqli)

Durante esta pausa el script PHP simplemente parece 'congelar' durante un tiempo antes de volver a la línea de comandos. No está utilizando ningún tiempo de CPU significativo, es como si esperara un poco de retraso.

Después de experimentar con PHP.ini, He reducido esto al hecho de que la extensión mysql o mysqli está activado. Si estas extensiones están deshabilitadas, no hay pausa molesta y la secuencia de comandos PHP termina en solo milisegundos.

El comando que estoy usando es:

"C:\Program Files\PHP\php.exe" -f %1 

donde% 1 es el script PHP.

La pausa se sigue produciendo, incluso si el script PHP que se está ejecutando es esencialmente vacío:

<?php 

?> 

¿Conoce lo que está causando esta pausa y cómo puedo eliminarlo al tiempo que permite MySQL o soporte mysqli para PHP en la línea de comando?

+0

El problema aparece corregido en PHP 5.3 actual en Windows. – thomasrutter

+0

¡Muchas gracias por este hilo, resolvió mi problema que me molestaba durante muchas semanas! Encontramos este problema en un servidor Win2008 con IIS y PHP. Lo afortunado es que no necesitamos mysql de todos modos, por lo que desactivamos esta extensión. Saludos cordiales, Jens –

+0

¿Está utilizando alguna de las funciones de la base de datos MySQL en su código? ¿Usas alguna conexión persistente? Si los apagas, ¿desaparecen? –

Respuesta

6

es un bug in mysql. puede resolverlo obteniendo la última versión de libmysql.dll (5.1.31 o superior). Algunas versiones anteriores también funcionan; consulte el segundo enlace. asegúrese de que sea el libmysql.dll realmente utilizado y que no haya otros libmysql.dlls en su ruta. ver el relacionado php issue para más detalles.

+0

Gracias. La actualización de libmysql.dll en mi directorio PHP eliminó casi por completo el retraso.Curiosamente, todavía hay un poco de retraso (unos cientos de milisegundos) en comparación con la deshabilitación del soporte de mysql. Pero el factor de molestia está resuelto. – thomasrutter

3

También experimentaron un molesto retardo de 2 segundos PHP que va desde la línea de comandos en Windows 7 de 64 bits.

Esta versión tenía un retraso:
php.exe (v5.3.5) se envía con ZendServer Community Edition

Esta versión era maravillosamente rápida:
php.exe (v5.3.6) se envía con EasyPHP

(Lo sentimos topar un hilo antiguo, pero espero que esto ayuda a otros googlear este tema.)

4

Para mí (Zend Server CE en Mac OS X), la extensión de imap fue la culpable. Deshabilitarlo resolvió el problema.

Anoyone quiere escribir un script PHP que divide en dos la extensión? :)

+1

Gracias! esto lo arregló en mi extremo usando MAMP en Mac OS X Mavericks, solo deshabilité la extensión eliminando la línea que decía "extension = imap.so" en el archivo de configuración de php-cli ubicado en: /Applications/MAMP/bin/php/php5.5.10 /conf/php.ini – jmserra

+0

¡Lo mismo aquí! Es curioso cómo esto es un problema dos años después, pero incapacitar a imap.so también me solucionó el retraso cli. (MAMP PRO 3.0/OSX Yosemite) –

Cuestiones relacionadas