用PHP命令行界面奇怪的5秒暂停(与mysql / mysqli扩展相关)

命令行PHP客户端(Windows上的PHP 5.2)执行PHP脚本时,我得到一个奇怪的5到7秒的停顿。

在暂停期间,PHP脚本在返回到命令提示符之前似乎“冻结”了一会儿。 它没有使用任何显着的CPU时间,就像是在等待一些延迟。

在用PHP.ini做实验之后,我缩小了这个事实,即启用了mysql或mysqli扩展。 如果这两个扩展都是禁用的,那么不会有恼人的停顿,PHP脚本只会在几毫秒内终止。

我正在使用的命令是:

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

其中%1是PHP脚本。

即使正在执行的PHP脚本实质上是空的,暂停仍然会发生:

 <?php ?> 

你知道是什么导致了这个暂停,以及如何在命令行中允许mysql或mysqli支持PHP的同时删除它吗?

这是一个在MySQL中的错误 。 你可以通过获取最新的libmysql.dll(5.1.31或更高版本来解决它,一些旧版本也可以工作 – 请参阅第二个链接)。 确保这是实际使用的libmysql.dll,并且在路径中没有其他libmysql.dlls。 详情请参阅相关的php问题 。

对我来说(在Mac OS X上的Zend server CE),imap exetension是罪魁祸首。 禁用它解决了这个问题。

Anoyone想写一个PHP扩展平分脚本? 🙂

我也遇到了一个令人讨厌的2秒延迟运行在Windows 7 64位命令行下的PHP。

这个版本有一个延迟:
Zendserver Community Edition附带的php.exe(v5.3.5)

这个版本非常快:
EasyPHP随附的php.exe(v5.3.6)

(对不起,碰到一个古老的线程,但希望这可以帮助别人谷歌搜索这个问题。)