私は PHP の初心者ですが、今日コードの一部を見て、数行を修正せずにはいられませんでした。
-
-
class runTime { - var $StartTime = 0;
- var $StopTime = 0;
- var $TimeSpent = 0;
関数 start(){
- $this->StartTime = microtime();
- }
function stop(){
- $this->StopTime = microtime();
- }< /p>
関数 Spent() { - if ($this->TimeSpent) {
- return $this->TimeSpent;
- } else {
- $StartMicro = substr($this->StartTime, 0,10);
- $StartSecond = substr($this->StartTime,11,10);
- $StopMicro = substr($this->StopTime,0,10);
- $StopSecond = substr($this- >StopTime,11,10);
- $start = floatval($StartMicro) + $StartSecond;
- $stop = floatval($StopMicro) + $StopSecond;
- $this->TimeSpent = $stop - $start;
- returnround($this->TimeSpent,8);
- }
- } // end function
- }
-
コードをコピー
1. 梱包が不適切と言われるのはなぜですか?
使用中に、これらのクラスの属性を var (public) の形式で表示する必要がないことがわかりました。クラスが使用されているため、これらの変数はプライベート アクセスを使用して制御できます。 。
2. マイクロタイムは十分に活用されていませんか?
マニュアルのマイクロタイムに関する説明:
定義と使用法
microtime() 関数は、現在の Unix タイムスタンプとマイクロ秒を返します。
オプションのパラメーターを指定せずに呼び出された場合、この関数は「msec sec」形式の文字列を返します。ここで、sec は Unix エポック (グリニッジ標準時 1970 年 1 月 1 日 0:00:00) からの秒数です。msec はマイクロ秒の部分です。 。文字列の両方の部分が秒単位で返されます。
PHP5 以降では、パラメータ true を受け入れることができるため、浮動小数点数を直接返すことができ、効率は今よりもはるかに高くなります。
以下は、参考のためにオンラインで見つかった小さなコードです。
-
- function microtime_float3(){
- return microtime(true)
- }
function microtime_float2(){
- if( PHP_VERSION &g t ; 5){
- return microtime(true);
- }else{
- list($usec, $sec) =explode(" ", microtime()); ;
- }
- }
function microtime_float(){
- list($usec, $sec) =explode(" ", microtime());
- return ((float)$usec + ( float)$sec);
- }
関数 runtime($t1){
- returnnumber_format((microtime_float() - $t1)*1000, 4).'ms'; ;/p>
$t1 = microtime_float();
- for($i=0;$i microtime_float()
- }
- echo "microtime_float=====" ;
- エコー ランタイム($t1).'
';
- $t1 = microtime(true);
for($i=0;$i microtime(true)
- }
- echo "microtime_true=====";
- echo runtime($t1).'
'
- $t1 = microtime(true);
for($i=0;$i microtime_float2()
- }
echo "microtime_float2====="; ($t1).' ';
- $t1 = microtime(true);
for($i=0;$i microtime_float3(
- 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
-
-
-
-
-
-
-
-
-
|