「自作の処理時間計測ツールの紹介」を修正してみました.

2025年10月26日
文字数[1678文字] この記事は2分6秒で読めます.

おはようございます.日々、寒さを感じる季節になりましたね.以前務めていた会社に自作の処理時間計測ツールの紹介という記事が掲載されていました.久しぶりにAIを使わずにコードの改善を行ってみました、リンク先のコードを見たときに自分ならどうするだろうと考えたら下記のコードに至りました.

特にマウントを取るつもりはないのですが、コードがシンプルになった事は確かだと思っています、不具合等あるかも知れませんが、恐らく動くのではないかなと思います.

コードの善し悪しは後出しジャンケンのような物なので書いた本人も分かると思います.

そんな事よりも記事のタイトルはあるものの、内容が一切無いのは如何なものかと思っています.これ会社として公開する記事だよね…

コードだけでは素人は何を書いているのか分からないじゃないかという思いとともに何だかちょっとがっくしでちょっとやるせない気持ちになります.以前の会社はなんか上手く行ってない気がします.何となくだけど…

<?php 
 
class StopWatch 
{ 
    private static $startTime; 
    private static $lastTime; 
    private static $total = 0; 
    private static $log = []; 
 
    public static function lap($note = ''):void 
    { 
        $time = microtime(true); 

        $dbg = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]; 
       
        if ($note !== '') { 
            $note .= ' '; 
        }
        $note .= "{$dbg['file']}#{$dbg['line']}"; 

        self::timeCalc($time,$note);
    }
 
    private static function timeCalc($time,$note):void
    {
        self::$startTime = self::$startTime??$time; 
        self::$lastTime = self::$lastTime??$time;
        
        $lap = $time - self::$lastTime; 
        self::$lastTime = $time; 
        self::$total = $time - self::$startTime; 
 
        self::$log[] = [ 
            'total' => sprintf('%.6f', self::$total), 
            'lap'   => sprintf('%.6f', $lap), 
            'note'  => $note, 
        ];
    }
 
    public static function getLog():array 
    { 
        return self::$log; 
    } 
} 

明日へ続く