2016-04-14 3 views
0

私はいくつかのデータベースといくつかのテーブルに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コードの遅い部分をデバッグすることができます示唆している?

+0

PHPは文字列だけの視点から、PHPは_at all_を実行しません。これはjavascriptで、クライアント上で実行されます(まったく)。 – arkascha

+0

パフォーマンスの問題をデバッグするには、xdebugが提供するプロファイラを調べることができます。しかし、使用するのは簡単ではありません。使いやすいphpsの 'tick'機能があります:http://php.net/manual/de/function.register-tick-function.phpこれを使って、おそらくタイムスタンプのような単純な文字列をある種のログファイルに出力することができます。その結果、ステップのリストが作成されます。あなたは、コードのどの部分がそれほど長くかかるのかを知ることができます。 – arkascha

+0

phpはサーバー上で最初にコンパイルされ、javascriptはhtmlがブラウザに出力されるまで実行されません。それはあなたのjavascriptの間に時間差がない理由です。あなたは時間をPHPで得る必要があります。 'Date.now()'をPHPの['time()']に変更してください(http://php.net/manual/en/function.time.php) - > 'echo ' '; 'これはphpがいつ実行されるかを示します。 – Sean

答えて

0

PHPの時間を測定するには、PHPコードを使用する必要があります。

$start = time(); 

と最終用途

$duration = time() - $start; 
echo '<script>console.log("Duration ",' . $duration . ');</script>'; 

であなたが開始と終了をもエコーすることができますが、あなたはPHPの時間を使用する必要があります:

echo '<script>console.log("Start ",' . time() . ');</script>'; 

初め、実行時に

および

echo '<script>console.log("End ",' . time() . ');</script>'; 
関連する問題