Current File : /var/www/prestashop/modules/ps_metrics/vendor/squizlabs/php_codesniffer/src/Util/Timing.php
<?php

/**
 * Timing functions for the run.
 *
 * @author    Greg Sherwood <gsherwood@squiz.net>
 * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
 * @license   https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 */
namespace ps_metrics_module_v4_0_6\PHP_CodeSniffer\Util;

class Timing
{
    /**
     * The start time of the run.
     *
     * @var float
     */
    private static $startTime;
    /**
     * Used to make sure we only print the run time once per run.
     *
     * @var boolean
     */
    private static $printed = \false;
    /**
     * Start recording time for the run.
     *
     * @return void
     */
    public static function startTiming()
    {
        self::$startTime = \microtime(\true);
    }
    //end startTiming()
    /**
     * Get the duration of the run up to "now".
     *
     * @return float Duration in microseconds.
     */
    public static function getDuration()
    {
        if (self::$startTime === null) {
            // Timing was never started.
            return 0;
        }
        return (\microtime(\true) - self::$startTime) * 1000;
    }
    //end getDuration()
    /**
     * Convert a duration in microseconds to a human readable duration string.
     *
     * @param float $duration Duration in microseconds.
     *
     * @return string
     */
    public static function getHumanReadableDuration($duration)
    {
        $timeString = '';
        if ($duration > 60000) {
            $mins = \floor($duration / 60000);
            $secs = \round(\fmod($duration, 60000) / 1000, 2);
            $timeString = $mins . ' mins';
            if ($secs !== 0) {
                $timeString .= ", {$secs} secs";
            }
        } else {
            if ($duration > 1000) {
                $timeString = \round($duration / 1000, 2) . ' secs';
            } else {
                $timeString = \round($duration) . 'ms';
            }
        }
        return $timeString;
    }
    //end getHumanReadableDuration()
    /**
     * Print information about the run.
     *
     * @param boolean $force If TRUE, prints the output even if it has
     *                       already been printed during the run.
     *
     * @return void
     */
    public static function printRunTime($force = \false)
    {
        if ($force === \false && self::$printed === \true) {
            // A double call.
            return;
        }
        if (self::$startTime === null) {
            // Timing was never started.
            return;
        }
        $duration = self::getDuration();
        $duration = self::getHumanReadableDuration($duration);
        $mem = \round(\memory_get_peak_usage(\true) / (1024 * 1024), 2) . 'MB';
        echo "Time: {$duration}; Memory: {$mem}" . \PHP_EOL . \PHP_EOL;
        self::$printed = \true;
    }
    //end printRunTime()
}
//end class