「PHPの実行時間を計測する」の編集履歴(バックアップ)一覧はこちら

PHPの実行時間を計測する」(2015/07/22 (水) 21:57:07) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

PHPの実行時間を取得する。プログラムがあまりにも多い場合や、なんか遅いかも?という場合にPHPの実行時間を計測していきたいと思います。7月22日記事 ~ ~ 目次 #contents ~ ~ *サーバの時間をマイクロタイムで計測しているmicrotime関数を使う サーバも内部的に時間で動いています。そんな中で、サーバの時間をマイクロタイム単位で取得できれば、あとは引き算で計測するだけでできます。 microtime(); そして、()の中、いわゆる引数にtrueを使うと小数点の数字float型で返します。 *プログラム <?php $start_time = microtime(true); /*プログラム開始*/ /*プログラム終了*/ $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; ?> *計測(比較) **1から10000までを羅列表示させるプログラム <?php $start_time = microtime(true); /*プログラム開始*/ for($i = 1; $i <= 10000 ; $i++){ print $i; } /*プログラム終了*/ $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; ?> *計測(実行) **1から10000までを改行表示させるプログラム <?php $start_time = microtime(true); /*プログラム開始*/ for($i = 1; $i <= 10000 ; $i++){ print $i."<br>"; } /*プログラム終了*/ $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; ?> **それぞれ10回測定結果 100回ぐらいやらないと正確なデータがとれないかもしれませんが、とりあえず結果です。 |回数| BRなし| BRあり| |1| 0.008934021| 0.017646074| |2| 0.011970043| 0.016313076| |3| 0.009063959| 0.017118931| |4| 0.005344868| 0.015038967| |5| 0.007961035| 0.004641056| |6| 0.010595083| 0.005411863| |7| 0.00889492| 0.013128996| |8| 0.008177042| 0.014132977| |9| 0.010121107| 0.012089968| |10| 0.007774115| 0.013499022| |平均| 0.008883619| 0.012902093| このように平均がでたらt検定の流れ・・・が普通ですが、割愛します *計測(実行) 8ケタの数字パスワードを探すプログラム。主にブルーとフォースアタックと言われています。適当に作ってみます。 ※入力データのチェックなどは省きます。 自分専用コードです(笑) **1から99999999の8桁の数字の中から数字をループで回していき、入力されたものと一致したらプログラムを終了させます。 index.phpでもindex.htmlでも・・・ <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>無題ドキュメント</title> </head> <body> <form action="check.php" method="post"> <p>8桁の数字のパスワードを入力してください。<input type="text" name="number"></p> <input type="submit" name="submit" value="送信"> </form> </body> </html> check.php <?php $start_time = microtime(true); $number = $_POST["number"]; for($i = 1; $i <100000000;$i++){ if($i == $number){ break; } } $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; echo "<br>パスワードは".sprintf("%08d", $i)."です。"; ?> 数字がでかいほど当然計測時間が長くなります。むう。超簡単に書いたから7桁の数字いれられても8桁で返します・・・orz ~ ~ **結果(99999999の場合) 99999999を入力してみる。 11.53734588623秒かかりました。 パスワードは99999999です。 スクリプト言語(php言語など)だとコンパイラ言語(C言語など)に比べ、遅いです。C言語で書けばもっと早い結果が出ると思います。 また、高性能なマシンならすぐ解析ができます。 パスワードは数字にしないようにしましょう。
PHPの実行時間を取得する。プログラムがあまりにも多い場合や、なんか遅いかも?という場合にPHPの実行時間を計測していきたいと思います。7月22日記事 ~ ~ 目次 #contents ~ ~ *サーバの時間をマイクロタイムで計測しているmicrotime関数を使う サーバも内部的に時間で動いています。そんな中で、サーバの時間をマイクロタイム単位で取得できれば、あとは引き算で計測するだけでできます。 microtime(); そして、()の中、いわゆる引数にtrueを使うと小数点の数字float型で返します。 *プログラム <?php $start_time = microtime(true); /*プログラム開始*/ /*プログラム終了*/ $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; ?> *計測(比較) **1から10000までを羅列表示させるプログラム <?php $start_time = microtime(true); /*プログラム開始*/ for($i = 1; $i <= 10000 ; $i++){ print $i; } /*プログラム終了*/ $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; ?> ~ ~ *計測(実行) **1から10000までを改行表示させるプログラム <?php $start_time = microtime(true); /*プログラム開始*/ for($i = 1; $i <= 10000 ; $i++){ print $i."<br>"; } /*プログラム終了*/ $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; ?> ~ ~ **それぞれ10回測定結果 100回ぐらいやらないと正確なデータがとれないかもしれませんが、とりあえず結果です。 |回数| BRなし| BRあり| |1| 0.008934021| 0.017646074| |2| 0.011970043| 0.016313076| |3| 0.009063959| 0.017118931| |4| 0.005344868| 0.015038967| |5| 0.007961035| 0.004641056| |6| 0.010595083| 0.005411863| |7| 0.00889492| 0.013128996| |8| 0.008177042| 0.014132977| |9| 0.010121107| 0.012089968| |10| 0.007774115| 0.013499022| |平均| 0.008883619| 0.012902093| ~ ~ このように平均がでたらt検定の流れ・・・が普通ですが、割愛します ~ ~ *計測(実行) 8ケタの数字パスワードを探すプログラム。主にブルーとフォースアタックと言われています。適当に作ってみます。 ※入力データのチェックなどは省きます。 自分専用コードです(笑) ~ ~ **1から99999999の8桁の数字の中から数字をループで回していき、入力されたものと一致したらプログラムを終了させます。 index.phpでもindex.htmlでも・・・ <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>無題ドキュメント</title> </head> <body> <form action="check.php" method="post"> <p>8桁の数字のパスワードを入力してください。<input type="text" name="number"></p> <input type="submit" name="submit" value="送信"> </form> </body> </html> check.php <?php $start_time = microtime(true); $number = $_POST["number"]; for($i = 1; $i <100000000;$i++){ if($i == $number){ break; } } $end_time = microtime(true); $result = $end_time - $start_time; print "<br>".$result."秒かかりました。"; echo "<br>パスワードは".sprintf("%08d", $i)."です。"; ?> 数字がでかいほど当然計測時間が長くなります。むう。超簡単に書いたから7桁の数字いれられても8桁で返します・・・orz ~ ~ **結果(99999999の場合) 99999999を入力してみる。 11.53734588623秒かかりました。 パスワードは99999999です。 スクリプト言語(php言語など)だとコンパイラ言語(C言語など)に比べ、遅いです。C言語で書けばもっと早い結果が出ると思います。 また、高性能なマシンならすぐ解析ができます。 ~ ~ パスワードは数字にしないようにしましょう。 ~ ~ 以上

表示オプション

横に並べて表示:
変化行の前後のみ表示: