私はいくつかのデータベースといくつかのテーブルに1つの結果のページを作成するクエリを送信する私の遅いPHPスクリプトをデバッグしようとします。 PHPスクリプトの最後にHow can I write to console in PHP?PHPでは、いつインライン<script>が解決されますか?
および類似から取ら
echo '<script>console.log("Start ",Date.now());</script>';
:私は最初にこのように入れるのPHPスクリプトで
。
しかし、結果のページが表示されるまでに30秒から1分かかるので、Firebugコンソールに表示されるスクリプトの開始から終了までの時間差は1秒未満です。このよう
:1460618023753
エンド1460618023923
スタートは、だから私は、これらのインラインが実際に実行されたときに、私は誤解だと思います。
誰かがこれがなぜそうだと説明できますか?そして、おそらく私は、原則として、私のPHPコードの遅い部分をデバッグすることができます示唆している?
PHPは文字列だけの視点から、PHPは_at all_を実行しません。これはjavascriptで、クライアント上で実行されます(まったく)。 – arkascha
パフォーマンスの問題をデバッグするには、xdebugが提供するプロファイラを調べることができます。しかし、使用するのは簡単ではありません。使いやすいphpsの 'tick'機能があります:http://php.net/manual/de/function.register-tick-function.phpこれを使って、おそらくタイムスタンプのような単純な文字列をある種のログファイルに出力することができます。その結果、ステップのリストが作成されます。あなたは、コードのどの部分がそれほど長くかかるのかを知ることができます。 – arkascha
phpはサーバー上で最初にコンパイルされ、javascriptはhtmlがブラウザに出力されるまで実行されません。それはあなたのjavascriptの間に時間差がない理由です。あなたは時間をPHPで得る必要があります。 'Date.now()'をPHPの['time()']に変更してください(http://php.net/manual/en/function.time.php) - > 'echo ' '; 'これはphpがいつ実行されるかを示します。 – Sean