Heim > Backend-Entwicklung > PHP-Tutorial > php-timeit schätzt die Ausführungszeit von PHP-Funktionen

php-timeit schätzt die Ausführungszeit von PHP-Funktionen

WBOY
Freigeben: 2016-07-29 09:16:13
Original
910 Leute haben es durchsucht

Zunächst habe ich vor einiger Zeit den vorhandenen japanischen VPS verwendet, um einen Google-Proxy zu erstellen. Die Zugriffsgeschwindigkeit ist in Ordnung. Ich möchte sie mit Ihnen teilen:

Google guge Wenn es nicht funktioniert, rufen Sie einfach 119

Google: guge119.com

Google Scholar: Scholar.guge119 an .com

Manchmal müssen wir bei der Optimierung der PHP-Leistung die Ausführungszeit einer bestimmten Funktion kennen. Gibt es in Python ein ähnliches Modul?

Also habe ich selbst eine einfache Timeit-Funktion wie folgt geschrieben:

/**
 * Compute the delay to execute a function a number of time
 * @param $count    Number of time that the tests will execute the given function
 * @param $function        the function to test. Can be a string with parameters (ex: 'myfunc(123, 0, 342)') or a callback
 * @return float            Duration in seconds (as a float)
 */
function timeit($count, $function<span>) {
    if ($count <= 0<span>){
        echo "Error: count have to be more than zero"<span>;
        return -1<span>;
    }
    
    $nbargs = func_num_args<span>();
    if ($nbargs < 2<span>) {
        echo 'Error: No Funciton!'<span>;
        echo 'Usage:'<span>;
        echo "\ttimeit(count, 'function(param)')"<span>;
        echo "\te.g:timeit(100, 'function(0,2)')"<span>;
        return -1;                        // no function to time
<span>    }
    
    // Generate callback
    $func = func_get_arg(1<span>);
    $func_name = current(explode('(', $func<span>));
    if (!function_exists($func_name<span>)) {
        echo 'Error: Unknown Function'<span>;
        return -1;                    // can't test unknown function
<span>    }
    
    $str_cmd = ''<span>;
    $str_cmd .= '$start = microtime(true);'<span>;
    $str_cmd .= 'for($i=0; $i<'.$count.'; $i++) '.$func.';'<span>;
    $str_cmd .= '$end = microtime(true);'<span>;
    $str_cmd .= 'return ($end - $start);'<span>;
    
    return eval($str_cmd<span>);
}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
Nach dem Login kopieren

Testen Sie den Root-Finding-Algorithmus, den ich geschrieben habe, und die integrierte Root-Funktion des Systems. Finding-Funktion Die Ausführungszeit der Finding-Root-Funktion ist mehr als sechsmal schneller~~

Das Obige stellt vor, wie php-timeit die Ausführungszeit von PHP-Funktionen schätzt, einschließlich einiger Aspekte davon. Ich hoffe, es wird Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein.

//取平方根
function sqrt_nd($num<span>){
    $value = $num<span>;
    while(abs($value*$value -$num) > 0.001<span>){
        $value = ($value + $num/$value)/2<span>;
    }
    return $value<span>;
}


print timeit(1000, 'sqrt_nd(5)'<span>);
print "\n"<span>;
print timeit(1000, 'sqrt(5)');</span></span></span></span></span></span>
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage