ホームページ  >  記事  >  バックエンド開発  >  PHP マイクロタイムの使用上のヒント

PHP マイクロタイムの使用上のヒント

WBOY
WBOYオリジナル
2016-07-25 09:11:451396ブラウズ

私は PHP の初心者ですが、今日コードの一部を見て、数行を修正せずにはいられませんでした。

  1. class runTime {

  2. var $StartTime = 0;
  3. var $StopTime = 0;
  4. var $TimeSpent = 0;

  5. 関数 start(){

  6. $this->StartTime = microtime();
  7. }

  8. function stop(){

  9. $this->StopTime = microtime();
  10. }< /p>
  11. 関数 Spent() {

  12. if ($this->TimeSpent) {
  13. return $this->TimeSpent;
  14. } else {
  15. $StartMicro = substr($this->StartTime, 0,10);
  16. $StartSecond = substr($this->StartTime,11,10);
  17. $StopMicro = substr($this->StopTime,0,10);
  18. $StopSecond = substr($this- >StopTime,11,10);
  19. $start = floatval($StartMicro) + $StartSecond;
  20. $stop = floatval($StopMicro) + $StopSecond;
  21. $this->TimeSpent = $stop - $start;
  22. returnround($this->TimeSpent,8);
  23. }
  24. } // end function
  25. }

コードをコピー

1. 梱包が不適切と言われるのはなぜですか? 使用中に、これらのクラスの属性を var (public) の形式で表示する必要がないことがわかりました。クラスが使用されているため、これらの変数はプライベート アクセスを使用して制御できます。 。

2. マイクロタイムは十分に活用されていませんか? マニュアルのマイクロタイムに関する説明:

定義と使用法 microtime() 関数は、現在の Unix タイムスタンプとマイクロ秒を返します。

オプションのパラメーターを指定せずに呼び出された場合、この関数は「msec sec」形式の文字列を返します。ここで、sec は Unix エポック (グリニッジ標準時 1970 年 1 月 1 日 0:00:00) からの秒数です。msec はマイクロ秒の部分です。 。文字列の両方の部分が秒単位で返されます。

PHP5 以降では、パラメータ true を受け入れることができるため、浮動小数点数を直接返すことができ、効率は今よりもはるかに高くなります。

以下は、参考のためにオンラインで見つかった小さなコードです。

  1. function microtime_float3(){
  2. return microtime(true)
  3. }

  4. function microtime_float2(){

  5. if( PHP_VERSION &g t ; 5){
  6. return microtime(true);
  7. }else{
  8. list($usec, $sec) =explode(" ", microtime()); ;
  9. }
  10. }

  11. function microtime_float(){

  12. list($usec, $sec) =explode(" ", microtime());
  13. return ((float)$usec + ( float)$sec);
  14. }

  15. 関数 runtime($t1){

  16. returnnumber_format((microtime_float() - $t1)*1000, 4).'ms'; ;/p>
  17. $t1 = microtime_float();

  18. for($i=0;$i microtime_float()
  19. }
  20. echo "microtime_float=====" ;
  21. エコー ランタイム($t1).'
    ';
  22. $t1 = microtime(true);
  23. for($i=0;$i microtime(true)

  24. }
  25. echo "microtime_true=====";
  26. echo runtime($t1).'
    '
  27. $t1 = microtime(true);

    for($i=0;$i microtime_float2()

  28. }

  29. echo "microtime_float2====="; ($t1).'
    ';

  30. $t1 = microtime(true);

  31. for($i=0;$i microtime_float3(

  32. winxp の実行結果: microtime_float=====109.5631ms microtime_true=====38.8160ms microtime_float2=====52.7902ms microtime_float3=====45.0699ms Linux での実行結果: microtime_float=====47.2510ms microtime_true=====9.2051ms microtime_float2=====16.3319ms microtime_float3======12.2800ms
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。