2017-11-03 1 views
0

各関数が自分のPHPスクリプト内で実行するのにかかる時間を知る方法があるのだろうか?スクリプトで構成されるPHP関数の時間を知る方法はありますか?

スクリプトには(if条件 - PDOを使用するDBへのループ接続の場合)のような機能が含まれています。だから、これらの機能のそれぞれが取るどのくらい知ることができ、

<?php 
$link = $_POST['url']; 
$links = array(); 

for($i = 1; i < 9; i++){ 
    array_push($links , $link . 'page' . $i); 
} 

foreach($links as $lin){ 
    //PDO connection to the DB , It's not written right 
    $statement = 'SELECT * from links WHERE link = :zlink'; 
    zlink = $lin; 
    $count = $statement->rowCount(); 
    if($count > 1){ 
    // do something 
    }else{ 
    'INSERT INTO links WHERE link = :mlink'; 
    mlink = $lin; 

    file_put_contents(); 
    } 
} 

と複数の他の機能:例えば

は、私はそのような何かを持っていますか?何が時間がかかりますか?

+1

をあなたがチェックして時間を比較したいコードの前後にいくつかの 'microtime()'スナップショットがあります。適切なデバッグのためには、Xdebugのプロファイリングを調べてください。例:https://confluence.jetbrains.com/display/PhpStorm/Profiling+PHP+applications+with+PhpStorm+and+Xdebug – JimL

+0

https://stackoverflow.com/questions/6245971/accurate-way-to- php-scripts-measure-execution-of-php-scripts – acaputo

+0

xdebugを使用している場合は、そのプロファイリングによって生成されたフィールをプロファイリングし、キャッシュグラインドして、関数呼び出しの回数、 –

答えて

0

あなたは、外部のライブラリを使用せずにこれを実現するように、あなたのコードに機能を追加したい場合は、次の

function splittime($flag = NULL, $msg = ‘’, $output = TRUE) { 

    $ts = microtime(TRUE); 

    if ($output) { 

    if ($flag) { 
     echo (round(($ts - $flag), 3)) . " seconds - "; 
    } 

    echo $msg . ": " . date('H:i:s', $ts) . ":" . (round(($ts - intval($ts)), 3) * 1000) . "<br><br>"; 

    } 

    return $ts; 

} 

あなたのスクリプト(または別の関数内)で関数を呼び出す最初の時間を、同じようにそれを呼び出しますこの:後続の各呼び出しで

$flag = splittime(); 

、この使用:はい、あなただけTHRでし

$flag = splittime($flag); 
関連する問題