annotate vendor/squizlabs/php_codesniffer/src/Util/Timing.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@17 1 <?php
Chris@17 2 /**
Chris@17 3 * Timing functions for the run.
Chris@17 4 *
Chris@17 5 * @author Greg Sherwood <gsherwood@squiz.net>
Chris@17 6 * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
Chris@17 7 * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
Chris@17 8 */
Chris@17 9
Chris@17 10 namespace PHP_CodeSniffer\Util;
Chris@17 11
Chris@17 12 class Timing
Chris@17 13 {
Chris@17 14
Chris@17 15 /**
Chris@17 16 * The start time of the run.
Chris@17 17 *
Chris@17 18 * @var float
Chris@17 19 */
Chris@17 20 private static $startTime;
Chris@17 21
Chris@17 22 /**
Chris@17 23 * Used to make sure we only print the run time once per run.
Chris@17 24 *
Chris@17 25 * @var boolean
Chris@17 26 */
Chris@17 27 private static $printed = false;
Chris@17 28
Chris@17 29
Chris@17 30 /**
Chris@17 31 * Start recording time for the run.
Chris@17 32 *
Chris@17 33 * @return void
Chris@17 34 */
Chris@17 35 public static function startTiming()
Chris@17 36 {
Chris@17 37
Chris@17 38 self::$startTime = microtime(true);
Chris@17 39
Chris@17 40 }//end startTiming()
Chris@17 41
Chris@17 42
Chris@17 43 /**
Chris@17 44 * Print information about the run.
Chris@17 45 *
Chris@17 46 * @param boolean $force If TRUE, prints the output even if it has
Chris@17 47 * already been printed during the run.
Chris@17 48 *
Chris@17 49 * @return void
Chris@17 50 */
Chris@17 51 public static function printRunTime($force=false)
Chris@17 52 {
Chris@17 53 if ($force === false && self::$printed === true) {
Chris@17 54 // A double call.
Chris@17 55 return;
Chris@17 56 }
Chris@17 57
Chris@17 58 if (self::$startTime === null) {
Chris@17 59 // Timing was never started.
Chris@17 60 return;
Chris@17 61 }
Chris@17 62
Chris@17 63 $time = ((microtime(true) - self::$startTime) * 1000);
Chris@17 64
Chris@17 65 if ($time > 60000) {
Chris@17 66 $mins = floor($time / 60000);
Chris@17 67 $secs = round((($time % 60000) / 1000), 2);
Chris@17 68 $time = $mins.' mins';
Chris@17 69 if ($secs !== 0) {
Chris@17 70 $time .= ", $secs secs";
Chris@17 71 }
Chris@17 72 } else if ($time > 1000) {
Chris@17 73 $time = round(($time / 1000), 2).' secs';
Chris@17 74 } else {
Chris@17 75 $time = round($time).'ms';
Chris@17 76 }
Chris@17 77
Chris@17 78 $mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB';
Chris@17 79 echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL;
Chris@17 80
Chris@17 81 self::$printed = true;
Chris@17 82
Chris@17 83 }//end printRunTime()
Chris@17 84
Chris@17 85
Chris@17 86 }//end class