/var/www/hkosl.com/nick/codeigniter/application/vendor/phpunit/php-timer/src/Timer.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
/*
 * This file is part of the PHP_Timer package.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * Utility class for timing.
 */
class PHP_Timer
{
    
/**
     * @var array
     */
    
private static $times = array(
      
'hour'   => 3600000,
      
'minute' => 60000,
      
'second' => 1000
    
);

    
/**
     * @var array
     */
    
private static $startTimes = array();

    
/**
     * @var float
     */
    
public static $requestTime;

    
/**
     * Starts the timer.
     */
    
public static function start()
    {
        
array_push(self::$startTimesmicrotime(true));
    }

    
/**
     * Stops the timer and returns the elapsed time.
     *
     * @return float
     */
    
public static function stop()
    {
        return 
microtime(true) - array_pop(self::$startTimes);
    }

    
/**
     * Formats the elapsed time as a string.
     *
     * @param  float  $time
     * @return string
     */
    
public static function secondsToTimeString($time)
    {
        
$ms round($time 1000);

        foreach (
self::$times as $unit => $value) {
            if (
$ms >= $value) {
                
$time floor($ms $value 100.0) / 100.0;

                return 
$time ' ' . ($time == $unit $unit 's');
            }
        }

        return 
$ms ' ms';
    }

    
/**
     * Formats the elapsed time since the start of the request as a string.
     *
     * @return string
     */
    
public static function timeSinceStartOfRequest()
    {
        return 
self::secondsToTimeString(microtime(true) - self::$requestTime);
    }

    
/**
     * Returns the resources (time, memory) of the request as a string.
     *
     * @return string
     */
    
public static function resourceUsage()
    {
        return 
sprintf(
            
'Time: %s, Memory: %4.2fMB',
            
self::timeSinceStartOfRequest(),
            
memory_get_peak_usage(true) / 1048576
        
);
    }
}

if (isset(
$_SERVER['REQUEST_TIME_FLOAT'])) {
    
PHP_Timer::$requestTime $_SERVER['REQUEST_TIME_FLOAT'];
} elseif (isset(
$_SERVER['REQUEST_TIME'])) {
    
PHP_Timer::$requestTime $_SERVER['REQUEST_TIME'];
} else {
    
PHP_Timer::$requestTime microtime(true);
}