ホームページ >バックエンド開発 >PHPチュートリアル >コマンドラインで PHP を実行すると、一時停止が発生します。

コマンドラインで PHP を実行すると、一時停止が発生します。

WBOY
WBOYオリジナル
2016-06-23 13:34:581085ブラウズ

私が使用している PHP はバージョン 5.2.13 です
Apache では非常に高速に実行されます
cmd コマンドプロンプトを開いて実行すると、理由もなく呆然としてしまいます (約 5 秒)

などsimple ファイル a.php:

<?php echo "hello";


コマンド ラインで >php a.php を実行すると、文字列が出力され、さらに 4 秒後にプログラムが終了します。

php.ini の拡張子 php_curl.dll を削除すると、速度が再び非常に速くなったことがわかりました (Enter キーを押すとすぐにプログラムが実行されました)

あなたがこれに遭遇したかどうかはわかりませんが、私のシステムはwin7 64ビットです
オンラインのPHPバージョンは5.2.14なので、特に似たバージョンのバージョンを選択しました(PHPをダウンロードしたとき、5.2.14が見つかりませんでした...)。ローカル開発環境。


ディスカッションへの返信(解決策)

この問題はそれほど深刻ではありませんが、時々簡単なコードを書いてコマンドラインでデバッグしたいのですが、実行するたびに5秒かかります、それはかなり迷惑です。それどころか、システム、プログラム、構成はすべて問題ないようです。それどころか、Apache は非常に高速に動作します。 。 。

php ランタイムは、php5ts.dll と、php.ini で示されているすべての拡張ライブラリおよび対応するサポート ライブラリをロードする必要があります。このロードには時間がかかります。
コマンド ラインから実行しているため、php.exe が終了すると、ロードされたすべてのダイナミック リンクがロードされます。ライブラリはアンインストールされます
ただし、Apache では異なります。http.exe が終了していないため、ロードされたダイナミック リンク ライブラリはアンインストールされません
それに比べて、Apache は当然高速です

より多くのライブラリをロードしているため、速度が遅くなります。
上記の理由を参照してください。

グーグルで調べてみると、これは本当にバグのようです
https://bugs.php.net/bug.php?id=50410

php ランタイムは、php5ts.dll と php で示されているすべての拡張機能をロードする必要があります。 ini ライブラリと対応するサポート ライブラリの読み込みには時間がかかります
コマンド ラインから実行するため、php.exe が終了すると、読み込まれたすべてのダイナミック リンク ライブラリがアンインストールされます
ただし、Apache では異なります。終了すると、読み込まれたダイナミックリンクライブラリはアンインストールされません
それに比べて、Apacheは当然ダウンロードが早いです



php_curl.dll拡張子を読み込まないので、耐えられない速度なので、読み込まないほうがいいと思いますライブラリが多すぎることが原因です。 。 。

実稼働環境は Windows を使用していますか? 実稼働環境が Linux の場合、実際には仮想マシンを使用して環境をローカルにセットアップできます。今では vagrant や boot2docker を使うのがとても便利になり、virtualbox に多くのメモリを割り当てる必要もなくなりました。

実稼働環境は Windows を使用していますか? 実稼働環境が Linux の場合、実際には仮想マシンを使用して環境をローカルにセットアップできます。今では vagrant や boot2docker を使うのがとても便利になり、virtualbox に多くのメモリを割り当てる必要もなくなりました。



私は win7 64 ビット アルティメット バージョンですが、あなたが言及したソフトウェアについて聞いたことはありません

グーグルで調べてみましたが、これは本当にバグのようです
https://bugs.php.net/bug.php ? id=50410



これに関連する投稿の数:
まったく同じ php.ini を使用して 5.2.10 で再現できなかったため、PHP 5.2.11 と 5.2.12 にのみ影響があるようです。
Windows 7 で確認しました。まったく同じ php.ini ファイルを使用して 5.2.10 で再現できなかったため、PHP 5.2.11 と 5.2.12 にのみ影響するようです。 XP

さて、上記の説明は私が遭遇した状況と非常に似ていますが、PHP 自体に問題があるようですので、無視してください。 。 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。